SQL小知识011:利用Case When Then多条件判断与分类统计

case具有两种格式。简单case函数和case搜索函数。
--简单case函数
case sex
     when 'M' then '男'
     when 'F' then '女’
else '其他' 
end

--case搜索函数
case when sex = 'M' then '男' 
     when sex = 'F' then '女' 
else '其他'  
end  

注意:case函数只返回第一个符合条件的值,剩下的case部分将会被自动忽略。

将sum与case结合使用,实现分段统计。举例,分段统计人员表中男女人数

如下表

  代码如下

select 
   SUM(case  when U.Sex='F' then 1 else 0 end) as 女,
   SUM(case  when U.Sex='M' then 1 else 0 end) as 男,
   SUM(case  when U.Sex IS NULL   then 1 else 0 end) as 空
   from [GSCenter01DB].[dbo].[account_Users] U

运行结果

还有一个用法,把判断的结果可以作为一个列值返回,如下表员工加班时数,判断超出部分进行标识

 实现代码,如下:

select top 100 [EmpID],[JHourA],
  (
   case
   when [JHourA]>120 then '簽核到中心級'
   when [JHourA] between 80 and 120  then '簽核到處級'
   when [JHourA]<80 then 'b不用解鎖'
   end
  ) as [state]
  from [GSeServiceDB ].[dbo].[GSOT_Emp]

运行效果,如下:

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值