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()
是一个内置函数,它允许您根据表达式是否为空来确定要返回的值。