Oracle SQL 函数


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
 

猜你喜欢

转载自conkeyn.iteye.com/blog/1435161