天天看點

Oracle函數——COALESCE

COALESCE

含義:COALESCE是一個函數, (expression_1, expression_2, …,expression_n)依次參考各參數表達式,遇到非null值即停止并傳回該值。如果所有的表達式都是空值,最終将傳回一個空值。使用COALESCE在于大部分包含空值的表達式最終将傳回空值。

用法:

COALESCE(expression_1, expression_2, ...,expression_n)

例子

SELECT COALESCE(NULL,NULL,3,4,5) FROM dual  
           

其傳回結果為:3

SELECT A.ID,SUM(COALESCE(A.SHUL,0)+COALESCE(A.PZSHUL,0)) from t_order as A group by A.ID
           

這樣就不會因為資料庫中的值為NULL而計算錯誤

傳回值:傳回第一個非NULL表達式的類型

擴充

COALESCE(expression1,...n)

與此 CASE 函數等價:

CASE
WHEN (expression1 IS NOT NULL) THEN expression1
...
WHEN (expressionN IS NOT NULL) THEN expressionN
ELSE NULL
           

注意

空值加任何值都是空值,空值 乘任何值也都是空值,依此類推。

所有表達式必須是相同類型,或者可以隐性轉換為相同的類型。

轉自 https://www.cnblogs.com/zuiyue_jing/p/10135815.html