select decode(null,
null,2,
3,3,
4) from dual;
-------------------
2
select case null
when null then 2
when 3 then 3
else 4
end from dual;
-----------------------
4
总结,一般这两种写法可以互换,但值得注意地是·如果表达式为NULL的情况,结果会不一样·
decode是函数,case是运算符,按Oracle的比较运算符法则有操作数是null则返回非真值。
null,2,
3,3,
4) from dual;
-------------------
2
select case null
when null then 2
when 3 then 3
else 4
end from dual;
-----------------------
4
总结,一般这两种写法可以互换,但值得注意地是·如果表达式为NULL的情况,结果会不一样·
decode是函数,case是运算符,按Oracle的比较运算符法则有操作数是null则返回非真值。