1. 程式人生 > >sqlserver中查詢語句case when判斷的用法

sqlserver中查詢語句case when判斷的用法

今天幫同事統計表格,給我了個sql語句,又給我了份excel模板,但是sql語句查詢出來的結果和模板對不上,這導致還得人工一條一條的找這些資料,然後手動填寫結果...這太tm麻煩了...

excel模板如下(簡化版):

機構\日期 5月13日 5月15日
某某機構1
某某機構2
.。。。

sql語句如下:

select distinct StaID,StaName from Dev_DailyCheck where CONVERT(char(10),DevCabDate,120)='2017-05-15'
sql語句查詢結果如下:
staid staname
130105 某某檢測機構1
130106 某某檢測機構2

excel中有70個機構需要統計,而查詢出來的結果不一定會有多少個,所以需要人工查詢某些機構進行了檢查,然後填到excel中對應的【是】或者【否】,我忍不了。

修改查詢語句後,可以直接把需要的結果複製貼上到excel中,不用一個個核對且手工錄入。

修改後的sql如下:

select a.StaID 檢測站id,a.StaName 檢測站名稱,case when b.StaID is null then '否' else '是' end  是否進行日常檢查 from Org_DetectStation a left join (select distinct StaID,StaName from Dev_DailyCheck where CONVERT(char(10),DevCabDate,120)='2017-05-15' ) b
on a.StaID=b.StaID where a.StaID not in ('130101','130134','130136','130139')  order by a.StaID 
一個case when 的問題,就不要搞得那麼複雜。