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 
  • 相关阅读:
    浅谈LBS(基于位置的服务)
    MapBar地图更新啦
    推荐一款软件:Global Mapper
    51ditu、清华地图以及Google地图
    极索(Gsuo)推出新版地图采用Gmap设计思路
    公告:Rover's Official Blog停止更新
    最后的礼物:校园多媒体系统和校园WEBGIS系统
    JAVA中最常用的十个快捷键
    启程去旅行 android之merge布局 http://www.cnblogs.com/travelfromandroid/articles/2133206.html
    Http 范例
  • 原文地址:https://www.cnblogs.com/obge/p/12010987.html
Copyright © 2011-2022 走看看