ORACLE SELECT 语句中使用 CASE
前段时间做项目,需要从DB中读取数据,根据不同的类型,在画面显示不同的提示;以前为了简化SQL语句,统一做法都是写出SQL,然后在代码中判断处理,可是最近对象BUG发现,改别人的BUG时,遇见这种问题,代码就很难阅读,还需要大量的跟踪调试,才能明白业务逻辑。
所以这次项目,就要求了把这些业务逻辑写到SQL语句中,宁可SQL语句很长,也不在代码中写业务判断了,具体写法如下:
select kbn,
case when kbn > 1 then '中'when kbn > 2 then '国'
when kbn > 3 then '人'
else '4' end grade
from kbn_T