温习sql case when then

首先看我准备一张数据表(这是做一个数据测试的表,就相当于它们,一天打好几场球)

没错,就需要得到箭头指向的数据表,从数据表结构看出,应该会用到sum加和函数,

同时还会用到分组函数,不同日期的分组

 select distinct Date,
 sum(case Result when '胜利' then 1 else 0 end)as '胜利', //当判断为胜利的时候1 不是当然是0 sum+0=sum
 sum(case Result when ''    then  1 else 0 end)as ''
 from Game group by date //给日期分组
//话语来解释:找到 Result 当为 '胜利' 表示 1 反之 表示 0 end(结束 有点像if else 的感觉)

上面是一个例子。下面看一下 case when 的语法

关于Case  when 主要有两种语法的用法

 

//----------ome-------------------------------------
case 字段
         when '子段值' then '表示的结果值'
          when '字段2' then '表示的结果值2 '
       else '其他' end  //---------这种和swtic类似
//----------two-------------------------------------------
case when sex='1' then ''
         when sex='0' then ''
else '其他' end

 

以上两种方式都可以实现相同的功能!

case when 字段 用法:

下面用 case 字段 when 用法

//下面插入代码:

 

/****** Script for SelectTopNRows command from SSMS  ******/
SELECT  [ID]
      ,[Name]
      ,[SerialNumber]
      ,[Qty],(case  when 0<Qty and Qty<=2000 then 'C等级'
                   when 2000<Qty and Qty<=3000 then 'B等级'
                   else
                    '超级A'end)as 等级
  FROM [RTest].[dbo].[Produc]
  
  //--------------------------------------------------------------------------
  SELECT  [ID]
      ,[Name]
      ,[SerialNumber]
      ,[Qty],case Name when '三星XXJ' then '韩国'
                       when '苹果4' then '美国'
                       when '苹果5' then '美国'
                       when 'wphone8' then '美国'
                       when '宏基' then '中国台湾'
                       when '联想' then '中国大陆'
                    else
						'山寨'
                    end  as '地区'
  FROM [RTest].[dbo].[Produc]

 

  

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值