oracle中的if...else

版权声明:老虎的博客 https://blog.csdn.net/qq493820798/article/details/81478240

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

猜你喜欢

转载自blog.csdn.net/qq493820798/article/details/81478240