- 类别:
NVL2¶
根据第一个输入是否为 NULL 来返回值:
如果
expr1
是 NOT NULL,则 NVL2 返回expr2
。如果
expr1
是 NULL,则 NVL2 返回expr3
。
语法¶
NVL2( <expr1> , <expr2> , <expr3> )
实参¶
expr1
要检查是否为 NULL 的表达式。
expr2
如果
expr1
不为 NULL,则将对该表达式求值并返回得到的值。expr3
如果
expr1
为 NULL,则将对该表达式求值并返回得到的值。
使用说明¶
三个表达式的数据类型应该相同(或兼容)。
排序规则详细信息¶
expr1
的排序规则规范将被忽略,因为关于此表达式的关键在于它是否为 NULL。expr2
和expr3
的排序规则规范必须兼容。函数返回的值
expr2
和expr3
的最高 优先级 排序规则。
示例¶
如果 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] | --------+--------+--------+---------------+