SQL nvl/nvl2 -针对空值的判断计算
SQL nvl/nvl2 -针对空值的判断计算
1、nvl 函数
nvl(expr1, expr2)
如果 expr1 为 NULL,则返回 expr2;否则返回 expr1。 此函数是 coalesce(expr1, expr2) 的同义函数。
参数
- expr1:一个任意类型的表达式。
- expr2:一个与 expr1 共享最小共同类型的表达式。
返回:结果类型是参数类型中的最不常见类型。
示例
SELECT nvl(NULL, 20230907); -- 20230907
SELECT nvl(NULL, '滔Roy'); -- 滔Roy
SELECT nvl('滔Roy', 'Delphi'); -- 滔Roy
2、nvl2 函数
nvl2(expr1, expr2, expr3)
如果 expr1 不是 NULL,则返回 expr2,否则返回 expr3。 此函数是 CASE WHEN expr1 IS NOT NULL expr2 ELSE expr3 END 的同义函数。
参数
- expr1:一个任意类型的表达式。
- expr2:一个任意类型的表达式。
- expr3:一个与 expr2 共享最小共同类型的表达式。
返回:结果是 expr2 和 expr3 的最不常见类型。
示例
SELECT nvl2(NULL, 1, 0); -- 0
SELECT nvl2('滔Roy', 1, 0); --1
注意:以上函数 MS 数据库似乎不支持, 支持Oracle
创建时间:2023.09.07 更新时间:
博客园 滔Roy https://www.cnblogs.com/guorongtao 希望内容对你有所帮助,谢谢!