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