sql server case when

本文详细介绍了SQL中的Case函数,包括简单Case函数和Case搜索函数的使用方法,并通过多个实例展示了如何利用Case函数进行条件判断及分组统计,适用于初学者快速掌握Case函数的应用。

case具有两种格式:简单Case函数和Case搜索函数

简单case函数

实例:CASE sex 
    when '1' then '男' 
    when '2' then'女' 
    else '其他'  
end

Case搜索函数 

实例: CASE

     WHEN sex = '1' THEN '男' 
     WHEN sex = '2' THEN '女' 
     ELSE '其他'  END

  --还有一个需要注意的问题,Case函数只返回第一个符合条件的值,剩下的Case部分将会被自动忽略


 

case when提高

结合实例理解:

(一)

 

要求:依据表格求每个大洲的人口总和?

SELECT SUM(population) as popul,
CASE country
WHEN '中国' THEN '亚洲'
WHEN '印度' THEN '亚洲'
WHEN '日本' THEN '亚洲'
WHEN '美国' THEN '北美洲'
WHEN '加拿大' THEN '北美洲'
WHEN '墨西哥' THEN '北美洲'
ELSE '其他' END as area
FROM Cp
GROUP BY area ----------执行报错:列名'area'无效。area是即将生成的结果集中的列名,结果集生成之前无效

(二)

要求:按照国家和性别分组?

select country,sum(case when sex='1' then population else 0 end),
sum (case when sex='2' then population else 0 end)
from csp
group by country;
结果如下:

(三)select case when 用法

结果1:结果2:

实例1

SELECT    
  COUNT (CASE WHEN sex = 1 THEN 1
              ELSE NULL
              END) 男生数,
  COUNT (CASE WHEN sex = 2 THEN 1
              ELSE NULL
              END) 女生数
  FROM students GROUP BY grade;

实例2

SELECT    
  COUNT (CASE WHEN sex = 1 THEN 1 
              ELSE NULL
              END男生数,
  COUNT (CASE WHEN sex = 2 THEN 1
              ELSE NULL
              END女生数
  FROM students 

(四)where case when用法

结果1结果2

实例1

 

SELECT *
  FROM students a
  WHERE (CASE
           WHEN a.sex= 1 THEN 1
         ELSE 0

         END) =1 | 0     

(五) group by case when用法

 结果

SELECT
    CASE
       WHEN sex =1 THEN '1'
       ELSE NULL
    END sex,
    count(*)num
FROM students

GROUP BY
   CASE
      WHEN sex =1 THEN '1'
      ELSE NULL
   END

 

转载于:https://www.cnblogs.com/llljpf/p/6531641.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值