zoukankan      html  css  js  c++  java
  • Sql ----- sqlserver 中的if 判断 case... when

    与查询放到一块使用:

    语法:

    select 
    case 
        when 范围条件 then 产生的结果
        when 范围条件  then 产生的结果
        else 不是以上范围产生的结果
    end
    from 表名

    个人理解:

    在英文中  case 表示事件,  when  表示  什么时候,then 表示那时,当时,

          else 表示否则,,end 表示 结束

    那么就可以理解为   一件事的发生,有很多的事件段,在不同的时间段有不同的结果,可以用多个时间段和else 表示完整的事件,最后声明结束。

    来个例子:一张表

     使用case  when  算所得税,工资小于等于三千不扣钱,在三千和四千之间(包含四千)扣200,在四千和五千之间(包含五千)扣400,五千以上扣800

    也可以使用工资减去税收,计算实发

    当这个事件是一个完整的事件的时候也可以,根据条件算总数平均数之类

    计算 :表中学历是本科的总工资和职称是实习生的平均工资

    这个时候else 也就不起作用了,可不写

     代码:

    select Name,Gongzi,
    (Gongzi-(case 
        when GongZi < =3000 then 0
        when (Gongzi >3000 and GongZi<= 4000) then 200 
        when (Gongzi >4000 and GongZi<= 5000) then 400 
        else 800
    end)) as ShifaGongz
    
    from dbo.obgexinzi
    
    
    select 
    sum (case 
        when  XueLi = '本科' then GongZi
        else 0
    end) as benkezonggongzi,
    
    avg (case 
        when ZhiCheng  ='实习生' then GongZi
    end) as shixishenggongzi
    
    from dbo.obgexinzi

     计算工资简单使用

    select UserName,
       Exp_Decimal_01,Exp_Decimal_02,Exp_Decimal_04,Exp_Decimal_05,UserBankMark,
          (Exp_Decimal_01+Exp_Decimal_02) as Exp_Decimal_03,
          (Exp_Decimal_04+Exp_Decimal_05)  as  Exp_Decimal_06,
             
    (case when (UserBankMark is null or UserBankMark='')  then 0
    else (Exp_Decimal_01+Exp_Decimal_02)-(Exp_Decimal_04+Exp_Decimal_05)
    end) as Exp_Decimal_07,
    
    (case when not(UserBankMark is null or UserBankMark='')  then 0
    else (Exp_Decimal_01+Exp_Decimal_02)-(Exp_Decimal_04+Exp_Decimal_05)
    end) as Exp_Decimal_08
    
    
    from tbmdGongZiList 
  • 相关阅读:
    随笔2
    随笔
    关于updateElement接口
    随笔1
    本地访问正常,服务器访问乱码 记录
    Redis (error) NOAUTH Authentication required.解决方法
    tomcat启动很慢 停留在 At least one JAR was scanned for TLDs yet contained no TLDs.
    微信公众号消息回复
    微信公众号 报token验证失败
    idea中web.xml报错 Servlet should have a mapping
  • 原文地址:https://www.cnblogs.com/obge/p/12010987.html
Copyright © 2011-2022 走看看