SQL Server---Case When用法簡介

來源:互聯網
上載者:User

標籤:case when   sqlserver   group by case when   where case when   select case when   

 

Casewhen 用法簡介

 

         上一篇部落格使用了casewhen解決了資料匯總的問題,那麼這一篇部落格我將簡單的介紹一下關於case when的使用。

        

         CASEWHEN的表達形式
         1、簡單的case函數

--簡單Case函數CASE letterType WHEN '幹部介紹信' THEN '1' WHEN '轉遞檔案通知單' THEN '2' ELSE '其他' END 

         2、case搜尋函數

--Case搜尋函數CASEWHEN letterType='幹部介紹信' THEN '1' WHEN letterType='轉遞檔案通知單' THEN '2' ELSE '其他' END

         簡單Case函數的寫法相對比較簡潔,但是和Case搜尋函數相比,功能方面會有些限制,比如寫判斷式。還有一個需要注意的問題,Case函數只返回第一個合格值,剩下的Case部分將會被自動忽略。

 

         CASEWHEN 在語句中不同位置的用法

 

         1、  SELECT CASE WHEN用法

select userID ,count(CASE WHEN letterType='幹部介紹信' then '1' end)幹部介紹信數,count(CASE WHEN letterType='轉遞檔案通知單' then '1' end)轉遞檔案通知單數from T_LettersRecord GROUP BY userID

         運行結果:


         2、 WHERE CASE WHEN 用法

SELECT l.letterType, u.realName   FROM T_LettersRecord as l, T_User as u  WHERE (CASE WHEN l.letterType = '幹部介紹信' AND                   u.userID = '1'                THEN1              WHENl.letterType = '幹部介紹信' AND                   u.userID <> '1'                THEN1              ELSE0           END) = 1

         運行結果:


        

         3、 GROUP BY CASE WHEN 用法

SELECT CASE WHEN salary <= 3000 THEN 'T1' WHEN salary > 3000 AND salary <=8000  THEN'T2' WHEN salary > 8000 AND salary <=12000  THEN'T3' WHEN salary > 12000 AND salary <= 20000 THEN 'T4' ELSE NULL END 層級名稱, -- 別名命名COUNT(*) FROM    t_userSalaryGROUP BY CASE WHEN salary <= 3000 THEN 'T1' WHEN salary > 3000 AND salary <=8000  THEN'T2' WHEN salary > 8000 AND salary <=12000  THEN'T3' WHEN salary > 12000 AND salary <= 20000 THEN 'T4' ELSE NULL END;

         運行結果:

 

         本文簡單的介紹了一下CASEWHEN的簡單使用方法,希望能夠對讀者能夠有所協助。

 

         參考文章:

http://www.cnblogs.com/eshizhan/archive/2012/04/06/2435493.html(eshizhan)

http://www.cnblogs.com/yazdao/archive/2009/12/09/1620482.html(影子網路科技有限公司)

SQL Server---Case When用法簡介

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.