当您在查询中希望用一个具体的值来代替NULL值时,MaxCompute支持使用NVL函数将NULL值替换为指定的值,确保在执行数据分析或生成报告时,结果中不会有意外的空值。本文为您介绍在MaxCompute中NVL函数的使用。
命令格式
nvl(T <value>, T <default_value>)
参数说明
value:必填。输入参数。
T
指代输入数据类型,可以是MaxCompute支持的所有数据类型。default_value:必填。替换后的值。必须与value的数据类型保持一致。
返回值说明
如果value
值为NULL,返回default_value
,否则返回value
,函数的两个参数的数据类型必须一致。
示例数据
为便于理解函数的使用方法,本文为您提供源数据,基于源数据提供函数相关示例。创建表nvl_test,并添加数据,命令示例如下:
CREATE TABLE nvl_test (
c1 string,
c2 bigint,
c3 datetime);
--插入数据
INSERT INTO nvl_test VALUES
('aaa',23,'2024-01-11 00:00:00'),
('bbb',NULL,'2024-01-12 08:00:00'),
(NULL,20,'2024-01-13 05:00:00'),
('ddd',25,NULL);
使用示例
将nvl_test表c1
列中为NULL的值输出为00000
,c2
中为NULL的值输出为0
,c3
中为NULL的值输出为-
,命令示例如下:
SELECT nvl(c1,'00000'),nvl(c2,0),nvl(c3,'-') FROM nvl_test;
--示例返回结果如下
+-----+------------+-----+
| _c0 | _c1 | _c2 |
+-----+------------+-----+
| aaa | 23 | 2024-01-11 00:00:00 |
| bbb | 0 | 2024-01-12 08:00:00 |
| 00000 | 20 | 2024-01-13 05:00:00 |
| ddd | 25 | - |
+-----+------------+-----+
相关函数
NVL函数属于其他函数,更多其他业务场景的函数请参见其他函数。