全部產品
Search
文件中心

MaxCompute:NVL

更新時間:Feb 28, 2024

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