NVL(expr1,expr2)
如果expr1是null,则返回expr2;如果expr1不是null,则返回expr1。参数expr1和expr2可以是任务数据类型,但二者的数据类型必须要匹配。
NVL2(expr1,expr2,expr3)
NVL2是Oracle9i新增加的函数,该函数也用于处理NULL。如果expr1不是null,则返回expr2;如果expr1是null,则返回expr3.参数expr1可以是任意数据类型,而expr2和expr3可以是除LONG之外的任何数据类型。但注意,expr2,expr3的数据类型必须要与expr1的数据类型匹配。
LNNVL(expe1)
LNNVL 用于某个语句的where子句中的条件,如果条件为true就返回false;如果条件为UNKNOWN或者false就返回true。该函数不能用于复合条件如AND, OR, or BETWEEN中。
示例:
/* create table lnnvl_ex ( a number, b number ); insert into lnnvl_ex values (null, null); insert into lnnvl_ex values (null, 1); insert into lnnvl_ex values ( 2, 2); insert into lnnvl_ex values ( 3, null); insert into lnnvl_ex values ( 4, 5); */
SQL> select * from lnnvl_ex where a=b; A B ---------- ---------- 2 2
SQL> select * from lnnvl_ex where lnnvl(a=b); A B ---------- ---------- NULL NULL NULL 1 3 NULL 4 5