oracle中的if...else
1.decode函数
DECODE(value,比较值,值1,值2)
value与比较值比较为true,取值1,否则取值2。类似三目运算符
2.case when then else end语句
case具有两种格式。简单case函数和case搜索函数。
--简单case函数-----------------------------------------sex=1取‘男’,sex=2取‘女’,都不相等取‘其他’
case sex
when '1' then '男'
when '2' then '女'
else '其他' end
--case搜索函数
case when sex = '1' then '男'
when sex = '2' then '女'
else '其他' end
这两种方式,可以实现相同的功能。简单case函数的写法相对比较简洁,但是和case搜索函数相比,功能方面会有些限制,比如写判定式。
还有一个需要注重的问题,case函数只返回第一个符合条件的值,剩下的case部分将会被自动忽略。
--比如说,下面这段sql,你永远无法得到“第二类”这个结果
case when col_1 in ( 'a', 'b') then'第一类'
when col_1 in ('a') then '第二类'
else '其他' end