NVL是Oracle PL/SQL中的一个函数,是一个空值转换函数。它的格式是NVL( string1, replace_with)。它的功能是如果string1为NULL,则NVL函数返回replace_with的值,否则返回string1的值,如果两个参数都为NULL ,则返回NULL。
NVL是Oracle PL/SQL中的一个函数,是一个空值转换函数。它的格式是NVL( string1, replace_with)。它的功能是如果string1为NULL,则NVL函数返回replace_with的值,否则返回string1的值,如果两个参数都为NULL ,则返回NULL。
ORACLE NVL函数接受两个参数。它返回第一个非 NULL参数,如果所有参数都是 NULL,则返回 NULL。
COALESCE 表达式可被转换成等效的 NVL表达式这样的:
COALESCE ( val1, ... , val{n} )变成:
NVL( val1 , NVL( val2 , NVL( val3 , … , NVL ( val{n-1} , val{n} ) … )))这个函数的用例是在一个表达式中用某一特定值替换 NULL,例如NVL(SALARY, 0),意为'若薪资字段缺少值,则以 0 替换它'。但有一个明显例外,在大多数实现中 COALESCE 只评估其参数表表到逹第一个非 NULL值,这有几个重要的原因:第一个非 NULL 参数之后的参数可能是一个函数,它可能在计算成本上很昂贵、无效、或者可能会产生意料之外的副作用;然而 NVL 将评估参数表表其中的所有参数。
Oracle在NVL函数的功能上扩展,提供了NVL2函数。
NVL2(E1, E2, E3)的功能为:如果E1为NULL,则函数返回E3,否则返回E2。