SQL之Case when 语句

  --case简单函数  (把多列变成单列)
 select case sex when '0' then '女' 
        when '1' then '男' else '其他' end from [Northwind].[dbo].[Users]
  --case搜索函数
  select case when sex='0' then '女'
          when sex='1' then '男' 
          else '其他' end  from [Northwind].[dbo].[Users]

  从两种写法就可以看出,第一种太局限了,一般满足不了我们的复杂条件,我们的搜索函数相比就比较好了,还有一个需要注意的问题,Case函数只返回第一个符合条件的值,剩下的Case部分将会被自动忽略。 

group by 用法  这是最常见的用法

   select id,
    count(case when sex='0' then '女' end) 女生数,
    COUNT(case  when sex='1' then '男' end) 男生数 from [Northwind].[dbo].[Users]   group by id

 

count求和

   select 
    count(case when sex='0' then '女' end) 女生数,
    COUNT(case  when sex='1' then '男' end) 男生数 from [Northwind].[dbo].[Users]   

 

posted @ 2017-04-10 14:27  Sealee  阅读(838)  评论(0)    收藏  举报