如果value值为NULL,返回default_value,否则返回value。两个参数的数据类型必须一致。

命令格式

nvl(T <value>, T <default_value>)

参数说明

  • value:必填。输入参数。T指代输入数据类型,可以是MaxCompute支持的所有数据类型。
  • default_value:必填。替换后的值。必须与value的数据类型保持一致。

使用示例

例如表t_data的3个列分别为c1 stringc2 bigintc3 datetime。表中数据如下。
+----+------------+------------+
| c1 | c2 | c3 |
+----+------------+------------+
| NULL | 20 | 2017-11-13 05:00:00 |
| ddd | 25 | NULL |
| bbb | NULL | 2017-11-12 08:00:00 |
| aaa | 23 | 2017-11-11 00:00:00 |
+----+------------+------------+
通过nvl函数将c1中为NULL的值输出为00000,c2中为NULL的值输出为0,c3中为NULL的值输出为-,命令示例如下。
select nvl(c1,'00000'),nvl(c2,0),nvl(c3,'-') from nvl_test;
--返回结果如下。
+-----+------------+-----+
| _c0 | _c1 | _c2 |
+-----+------------+-----+
| 00000 | 20 | 2017-11-13 05:00:00 |
| ddd | 25 | - |
| bbb | 0 | 2017-11-12 08:00:00 |
| aaa | 23 | 2017-11-11 00:00:00 |
+-----+------------+-----+