SQL ISNULL & CASE WHEN

將null的欄位轉換成0,已利於計算

常常我們會利用某些欄位去做加減,做出運算欄位。但若是這個欄位一個是空白 一個是5 ,則當我們相加時會呈現null,但我們所希望的應該是5

因此我們通常會透過sql 將null 值轉換為 0 這樣便可以相加

MS SQL中我們可以利用ISNULL來判定是否為null值。如下

select ISNULL(A,0) From Atable 

這時候變會解是為當A=null 時 將其值設為 0

也可以是一個運算組合若 (sum(SD_QTY)+sum(GIFT_QTY)-sum(OUT_QTY) == null 則將其設為0

select ISNULL((sum(SD_QTY)+sum(GIFT_QTY)-sum(OUT_QTY)),0) from SALE_ORDER a,SALE_ORDER_D b

若我們並不是只判斷null則需要透過 case when 

下面這個就是再說假設我搜尋出來沒有資料(count = 0 ) 則我將AcaseWhen這個欄位 = 0 ,

若有資料則將AcaseWhen 設成A欄位的總和

Select (case when COUNT(*)=0 then 0 else SUM(A) end)from table as AcaseWhen