- 类别:
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] | --------+--------+--------+---------------+