case when then else end

理解:case (列名,非必填) when (条件判断) then (结果显示) else (不满足条件,需显示的结果) end。

          case ....... end    可以看做 “()“

case后不加列名: when 条件可以对表内列进行判断

                       例如“学生表“内先根据“性别 列”判断,然后对“成绩 列”再进行判断。

case后加列名:    when 条件只能对“列”内的“值”进行判断。

               

下面是简单的几个案例: 

--case后面加字段名,那么when 后面写的就是字段内值的名字. 需要进行分组

--字段内某几个值 统计成一个 进行汇总

select sum(sal),

       case job when 'it' then '员工'  

         when '财务' then '员工'
           when '人事' then '员工'
             else '领导'
               end
 from 表名
group by case job when 'it' then '员工'
         when '财务' then '员工'
           when '人事' then '员工'
             else '领导'
               end

 -------------------------------------------------------------------------------------------------------

--把"字段值"根据"自定义区间"进行分组

select case  when sal>1000 and sal<=2000 then '低收入'   
       when sal>2000 and sal<=3000 then '中等收入'
         when sal> 3000 and sal<=6000 then '高等收入'
           else '高层' end sal_1 ,count(*)
      from 表名
     group by  case  when sal>1000 and sal<=2000 then '低收入'
       when sal>2000 and sal<=3000 then '中等收入'
         when sal> 3000 and sal<=6000 then '高等收入'
           else '自由收入' end     
         

 -------------------------------------------------------------------------------------------------------
 --把字段sex内两个值 提取两个列.需要函数sum

select tname,sum(case when sex='男' then sal else '0' end),sum(case when sex = '女' then sal else '0' end) from 表名group by tname 



具体使用 https://blog.csdn.net/a364416036/article/details/52510543

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值