SQL Server---Case When用法简介

 

Casewhen 用法简介

 

         上一篇博客使用了casewhen解决了数据汇总的问题,那么这一篇博客我将简单的介绍一下关于case when的使用。

        

         CASEWHEN的表达形式


         1、简单的case函数

--简单Case函数
CASE letterType 
WHEN '干部介绍信' THEN '1' 
WHEN '转递档案通知单' THEN '2' 
ELSE '其他' END 

         2、case搜索函数

--Case搜索函数
CASE
WHEN 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_userSalary
GROUP 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.htmleshizhan

http://www.cnblogs.com/yazdao/archive/2009/12/09/1620482.html影子网络科技有限公司

评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值