如果value值为NULL,返回default_value,否则返回value。两个参数的数据类型必须一致。
命令格式
nvl(T <value>, T <default_value>)
参数说明
- value:必填。输入参数。
T
指代输入数据类型,可以是MaxCompute支持的所有数据类型。 - default_value:必填。替换后的值。必须与value的数据类型保持一致。
使用示例
例如表
t_data
的3个列分别为c1 string
、c2 bigint
、c3 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 |
+-----+------------+-----+