Oracle NVL2() 函数使用指南
Oracle NVL2() 是一个内置函数,它允许您根据表达式是否为空来确定要返回的值。
Oracle NVL2() 语法
这里是 Oracle NVL2() 函数的语法:
NVL2(expr1, expr2, expr3)
参数
- expr1
- 
必需的。一个值或者表达式。 
- expr2
- 
必需的。一个值或者表达式。 
- expr3
- 
必需的。一个值或者表达式。 
参数 expr1 可以有任何数据类型。参数 expr2 和 expr3 可以有除了LONG之外的任何数据类型。
如果 expr2 和 expr3 的数据类型不同,则 Oracle 数据库会将一种隐式转换为另一种。如果它们不能隐式转换,则数据库返回错误。如果 expr2 是字符型或数值型数据,则隐式转换实现如下:
- 如果 expr2是字符数据,则 Oracle 数据库将转换expr3为返回值之前的expr2的数据类型,除非expr3是空常量。在这种情况下,不需要进行数据类型转换,数据库以expr2的字符集返回VARCHAR2。
- 如果 expr2是数字数据,则 Oracle 数据库确定哪个参数具有最高的数字优先级,隐式地将另一个参数转换为该数据类型,然后返回该数据类型。
返回值
如果 expr1 不为 NULL Oracle NVL2(expr1, expr2, expr3) 函数返回 expr2,否则该函数返回 expr3。
如果任意一个参数为 NULL, NVL2() 将返回 NULL。
Oracle NVL2() 示例
SELECT
    NVL2(1, 'A', 'B'),
    NVL2(NULL, 'A', 'B')
FROM dual;
输出:
NVL2(1,'A','B')    NVL2(NULL,'A','B')
__________________ _____________________
A                  B在本示例中,NVL2(1,'A','B') 返回了 A,因为第一个参数不是 NULL,NVL2(NULL,'A','B') 返回了 B,因为第一个参数是 NULL。
结论
Oracle NVL2() 是一个内置函数,它允许您根据表达式是否为空来确定要返回的值。