解決SUM函數返回為NULL SUM函數的作用:計算某一欄位中所有行的數值和, 使用SUM函數進行對符合條件的結果行數進行求和。 問題產生: sum 求和時會對 null 進行過濾,不計算,但如果沒有返回結果,則sum 函數的返回值為 null,不是 0: 解決方式: 1. IFNULL 使用IFN ...
解決SUM函數返回為NULL
SUM函數的作用:計算某一欄位中所有行的數值和, 使用SUM函數進行對符合條件的結果行數進行求和。
問題產生:
sum 求和時會對 null 進行過濾,不計算,但如果沒有返回結果,則sum 函數的返回值為 null,不是 0:
解決方式:
1. IFNULL
使用IFNULL函數進行查詢,判斷第一個參數是否為null,如果是 則返回結果為第二個參數(數值自定義):
select IFNULL(SUM(number),0)
2. COALESCE
使用 COALESCE函數,COALESCE()函數可以接收多個參數,並返回第一個非 NULL的參數。如果所有參數都為 NULL,則 COALESCE() 函數返回 NULL。
select COALESCE(NULL,NULL,NULL,0)
此時返回0
select COALESCE(SUM(number),0)
此時等同於 IFNULL
3. CASE表達式
使用CASE表達式,CASE WHEN語法類似if..else進行校驗判斷
select(CASE WHEN SUM(ad.times) IS NULL THEN 0 ELSE SUM(ad.times) END ) total