zoukankan      html  css  js  c++  java
  • sql系列之001_{case~~when~~ then}

    1、等值判断,相当于switch case

    CASE expression
     WHEN value1 THEN returnvalue1
     WHEN value2 THEN returnvalue2
     WHEN value3 THEN returnvalue3
    ELSE defaultreturnvalue
    END
    例如:
              case level
              when 1 then '大叔'
              when 2 then '二叔'
              when 3 then '小叔'
        end

    相当于Switch,只能等值判断。

            select username,叔级别=(  
    1.     case level  
    2.         when 1 then '大叔'  
    3.         when 2 then '二叔'  
    4.         when 3 then '小叔'  
    5.     end  
    6. )     
    7. from userinfo  
    select username,叔级别=(
    	case level
    		when 1 then '大叔'
    		when 2 then '二叔'
    		when 3 then '小叔'
    	end
    )	
    from userinfo

    其结果为:~~~

    2、区间判断

    CASE
    WHEN condition1 THEN returnvalue1
    WHEN condition 2 THEN returnvalue2
    WHEN condition 3 THEN returnvalue3
    ELSE defaultreturnvalue
    END
    相当于if…else if…else….(可以进行区间判断)
     
    注意:then后面返回的数据类型要一致, returnvalue1、 returnvalue2、 returnvalue3的数据类型必须一致。

        

    1. select username,年纪=(      
    2.     case  
    3.         when age between 28 and 30 then '大叔'  
    4.         when age between 25 and 27 then '大青年'  
    5.         when age between 20 and 24 then '骚年'  
    6.          
    7.         when age < 20 then '小屁孩'  
    8.         else 'baby'  
    9.     end  
    10. )  
    11. from userinfo2  
     
    select username,年纪=(    
        case
            when age between 28 and 30 then '大叔'
            when age between 25 and 27 then '大青年'
            when age between 20 and 24 then '骚年'
           
            when age < 20 then '小屁孩'
            else 'baby'
        end
    )
    from userinfo2
    

    3、实际案例扯淡

         1、一般论坛中的用户等级

              论坛中用户的等
              case BBSlevel
                 when 1  then '骨灰'
                 when 2  then '大虾'
                when  3  then '菜鸟'
            end

        2、订单表中,统计每个销售员的总销售金额,列出销售员名、总销售金额、称号(>10W金牌,>5W银牌,>1W铜牌,否则普通)

        3、电商用户 根据用户消费总额 予以不同的等级

        4、游戏行业 玩家等级
     

    单号   金额
    RMB1 10
    RMB2   20
    RMB3    -30
    RMB4    -10
    将上面的表输出为如下的格式:
    单号   收入   支出
    RMB1     10       0
    RMB2     20       0
    RMB3      0        30
    RMB4    0        10

    1. select number,  
    2. (  
    3.     case   
    4.         when amount > 0 then amount  
    5.         else 0  
    6.     end  
    7. ) 收入,  
    8. (  
    9.     case   
    10.         when amount < 0 then abs(amount)  
    11.         else 0  
    12.     end   
    13. ) 支出  
    14. from test  
    select number,
    (
    	case 
    		when amount > 0 then amount
    		else 0
    	end
    ) 收入,
    (
    	case 
    		when amount < 0 then abs(amount)
    		else 0
    	end 
    ) 支出
    from test


  • 相关阅读:
    fastjson生成和解析json数据
    fastJson API
    js实现class样式的修改、添加及删除的方法
    jquery ajax局部加载方法介绍
    jquery 动态添加和删除 ul li列表
    spring mvc3中的addFlashAttribute方法
    Spring MVC 3 : 一次上传多个文件
    pring mvc 批量上传+文件上传
    SpringMVC批量上传
    Android ADT Bundle(Eclipse with ADT) ADT R23
  • 原文地址:https://www.cnblogs.com/zjflove/p/2923825.html
Copyright © 2011-2022 走看看