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  更新时间:

posted on 2023-09-07 09:17  滔Roy  阅读(88)  评论(0编辑  收藏  举报

导航