oracle之nvl,nvl2,decode
oracle sql常用查询nvl,nvl2,decode区别及使用方法
1,NVL( E1, E2) 如果E1为NULL,则NVL函数返回E2的值,否则返回E1的值,如果两个参数都为NULL ,则返回NULL。
select nvl(null, 1) from dual; --1 select nvl(2, 1) from dual; --2 select nvl(null, null) from dual; --null
2,nvl2 (E1, E2, E3) 的功能为:如果E1为NULL,则函数返回E3,否则返回E2
select nvl2(null, 1, 3) from dual; --3
,3,decode(E1, E2, E3, E4, E5, E6 ) 如果E1==E2,则值E3,如果E1==E4,则值E5;否则E5
select decode(1, 1, 2, 3, 4, 5) from dual; --2 select decode(3, 1, 2, 3, 4, 5) from dual; --4 select decode(2, 1, 2, 3, 4, 5) from dual; --5