Oracle NVL() 函数使用指南

Oracle NVL() 是一个内置函数,它允许您使用一个值替换 NULL 值。

Oracle NVL() 语法

这里是 Oracle NVL() 函数的语法:

NVL(expr1, expr2)

参数

expr1

必需的。一个值或者表达式。

expr2

必需的。另一个值或者表达式。

参数 expr1expr2 可以有任何数据类型。如果它们的数据类型不同,则 Oracle 数据库会将一种数据类型隐式转换为另一种数据类型。如果它们不能隐式转换,则数据库返回错误。隐式转换实现如下:

  • 如果 expr1 是字符数据,则 Oracle 数据库在比较前将将 expr2 转换为 expr1 的数据类型,并以 expr1 的字符集返回 VARCHAR2
  • 如果 expr1 是数字,则 Oracle 数据库确定哪个参数具有最高的数字优先级,隐式地将另一个参数转换为该数据类型,然后返回该数据类型。

返回值

如果 expr1NULL,则 Oracle NVL返回 expr2。如果 expr1 不为 NULL,则 NVL 返回 expr1

如果两个参数都为 NULLNVL() 将返回 NULL

Oracle NVL() 示例

这里有几个展示了 Oracle NVL() 函数用法的示例。

基本用法

SELECT
    NVL(NULL, 'expr1 is null'),
    NVL('expr1 is not null', 'expr2')
FROM dual;

输出:

NVL(NULL,'EXPR1ISNULL')    NVL('EXPR1ISNOTNULL','EXPR2')
__________________________ ________________________________
expr1 is null              expr1 is not null

NULL 参数

如果两个参数都为 NULLNVL() 将返回 NULL

SET NULL 'NULL';
SELECT
    NVL(NULL, NULL)
FROM dual;

输出:

NVL(NULL,NULL)
_________________
NULL

在本示例中,我们使用 SET NULL 'NULL'; 语句将 NULL 值显示为 'NULL' 字符串。

结论

Oracle NVL() 是一个内置函数,它允许您使用一个值替换 NULL 值。