MaxCompute COALESCE函數會從左至右的順序對輸入的參數進行逐一檢查,一旦遇到第一個非NULL的值,就會立即返回該值,並不再繼續檢查後面的參數。本文為您介紹COALESCE函數的命令格式、參數說明以及使用樣本。
命令格式
coalesce(<expr1>, <expr2>, ...)
參數說明
expr:必填。待驗證的值。
傳回值說明
傳回值類型和參數資料類型相同。
使用樣本
樣本1:常見用法。命令樣本如下。
--返回1。 select coalesce(null,null,1,null,3,5,7);
樣本2:參數實值型別未定義,返回報錯。
錯誤命令樣本
--參數abc未定義類型,系統引擎無法識別,導致返回報錯。 select coalesce(null,null,1,null,abc,5,7);
正確命令樣本
select coalesce(null,null,1,null,'abc',5,7);
樣本3:在非表讀取的情況下,如果參數值全部為空白,則返回報錯。錯誤命令樣本如下。
--返回報錯,會提示至少有一個參數值非NULL。 select coalesce(null,null,null,null);
樣本4:在表讀取的情況下,如果參數值全部為空白,則返回NULL。
未經處理資料表:
+-----------+-------------+------------+ | shop_name | customer_id | toal_price | +-----------+-------------+------------+ | ad | 10001 | 100.0 | | jk | 10002 | 300.0 | | ad | 10003 | 500.0 | | tt | NULL | NULL | +-----------+-------------+------------+
由未經處理資料表可以看出,tt的值全部為空白。則執行以下語句後傳回值為NULL。
select coalesce(customer_id,total_price) from sale_detail where shop_name='tt';
相關函數
COALESCE函數屬於其他函數,更多其他業務情境的函數請參見其他函數。