SQL COALESCE 函數

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章