nvl(exp1,exp2): 如果exp1为空,则返回exp2;否则返回exp1
nvl2(exp1,exp2,exp3): 如果exp1为空,则返回exp3;否则返回exp2
nullif(exp1,exp2): 如果exp1等于exp2,则返回空;否则返回exp1
coalesce(exp1,exp2.....expn): 返回列表中第1个不为空的值,如果全部元素为空,则返回空。
举例说明如下:
SQL> select nvl(1,2) from dual; NVL(1,2)
----------
1 SQL> select nvl(null,2) from dual; NVL(NULL,2)
-----------
2 SQL> select nvl2(2,3,4) from dual; NVL2(2,3,4)
-----------
3 SQL> select nvl2(null,3,4) from dual; NVL2(NULL,3,4)
--------------
4 SQL> select nullif(5,4) from dual; NULLIF(5,4)
-----------
5 SQL> select nullif(5,5) from dual; NULLIF(5,5)
----------- SQL> select coalesce(null,1,null,2,3) from dual; COALESCE(NULL,1,NULL,2,3)
-------------------------
1 SQL> select coalesce(null,null,null,2,3) from dual; COALESCE(NULL,NULL,NULL,2,3)
----------------------------
2 此外case和decode也可以处理空值。