--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]