sqlserver中查詢語句case when判斷的用法
阿新 • • 發佈:2019-01-30
今天幫同事統計表格,給我了個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如下:
一個case when 的問題,就不要搞得那麼複雜。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