當您在查詢中希望用一個具體的值來代替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函數屬於其他函數,更多其他業務情境的函數請參見其他函數。