SQL COALESCE 函數
https://docs.oracle.com/cd/B28359_01/server.111/b28286/functions023.htm#SQLRF00617
COALESCE(expr [, expr ]…)
COALESCE
返回表達式列表中的第一個非空expr
。您必須至少指定兩個表達式。如果所有出現的expr都評估爲null,則該函數返回null。
Oracle數據庫使用短路評估。數據庫評估每個expr值並確定它是否爲NULL,而不是在確定所有expr值是否爲NULL之前先評估所有的expr值。
如果所有出現的expr都是數字數據類型或可以隱式轉換爲數字數據類型的任何非數字數據類型,則Oracle數據庫將確定具有最高數字優先級的參數,將其餘參數隱式轉換爲該數據類型,然後返回該數據類型。
此功能是NVL
功能的概括。
您還可以將COALESCE用作各種CASE表達式。例如,
COALESCE (expr1, expr2)
等效於:
CASE WHEN expr1 IS NOT NULL THEN expr1 ELSE expr2 END
同樣的
COALESCE (expr1, expr2, …, exprn), for n>=3
等效於:
CASE WHEN expr1 IS NOT NULL THEN expr1 ELSE COALESCE (expr2, …, exprn) END
其他資料:
https://docs.oracle.com/cd/B28359_01/server.111/b28286/functions.htm#SQLRF006
https://docs.oracle.com/cd/B28359_01/server.111/b28286/expressions004.htm#SQLRF20037