类别:

条件表达式函数

NVL2

根据第一个输入是否为 NULL 来返回值:

  • 如果 expr1 是 NOT NULL,则 NVL2 返回 expr2

  • 如果 expr1 是 NULL,则 NVL2 返回 expr3

语法

NVL2( <expr1> , <expr2> , <expr3> )
Copy

实参

expr1

要检查是否为 NULL 的表达式。

expr2

如果 expr1 不为 NULL,则将对该表达式求值并返回得到的值。

expr3

如果 expr1 为 NULL,则将对该表达式求值并返回得到的值。

使用说明

  • 三个表达式的数据类型应该相同(或兼容)。

排序规则详细信息

  • expr1 的排序规则规范将被忽略,因为关于此表达式的关键在于它是否为 NULL。

  • expr2expr3 的排序规则规范必须兼容。

  • 函数返回的值 expr2expr3 的最高 优先级 排序规则。

示例

如果 a 不为 null,则返回 b,否则返回 c

SELECT a, b, c, NVL2(a, b, c) FROM i2;

--------+--------+--------+---------------+
   A    |   B    |   C    | NVL2(A, B, C) |
--------+--------+--------+---------------+
 0      | 5      | 3      | 5             |
 0      | 5      | [NULL] | 5             |
 0      | [NULL] | 3      | [NULL]        |
 0      | [NULL] | [NULL] | [NULL]        |
 [NULL] | 5      | 3      | 3             |
 [NULL] | 5      | [NULL] | [NULL]        |
 [NULL] | [NULL] | 3      | 3             |
 [NULL] | [NULL] | [NULL] | [NULL]        |
--------+--------+--------+---------------+
Copy
语言: 中文