sql語句 之 CASE WHEN 搜尋語句
阿新 • • 發佈:2018-12-10
今天查詢資料庫時遇到一個問題,一個表中存了三種不同狀態的的記錄,即倉庫日誌表裡存了 領出,報廢,歸還三個狀態的欄位,而我需要做的操作是統計出一個人的領用總數量,報廢總數量,和歸還總數量,自己用了很多種方法,但都行不通,最後還是大神提供了case when語句才得以解決,所以寫下這篇日誌得以記錄以便不時之需;
case when 聽起名字就知道,應該和switch 語句差不多;所以他的一般格式為:
case
when 列名= 條件值1 then 選擇項1
when 列名=條件值2 then 選項2.......
else 預設值 end
你可以在 then 後面寫任何值,當然你也可以用表中的欄位 作為選項,我寫的是多重 查詢語句;
select UID,UNAME,sum(LingChuNum)as LCNUM,sum(BaoFeiNum)as BFNUM,sum(GuiHuanNum)as GHNUM FROM ( select uid ,uname, case when Type=1 then OutNum else 0 end as LingchuNum, case when Type=2 then OutNum else 0 end as BaoFeiNum, case when Type=3 then OutNum else 0 end as GuiHuanNum, from WareHouseLogList where UID=1 and Wcode=‘1001’ )t group by(UID,UNAME )