SQL sever CASE的几种常用方法

1、比较多列数据最大值

1 select 
2 case
3 when 列名1>列名2 and 列名2>列名3 then 列名1 
4 when 列名2>列名3 then 列名3
5 else 列名3 end
6 from 表名

2、自定义排序

1 select * from 表名 order by
2 (
3 case 列名 
4 when '字段名1' then 1 --后面的数字是排序
5 when '字段名2' then 2
6 when '字段名3' then 3
7 when '字段名4' then 4
8 else '' end
9 )

3、换行转列

名字 科室  分数
小明  语文 99
小明  英语 11
小明  数学 12
小黄 语文 29
小黄 英语 21
小黄 数学 22
小红 语文 39
小红 英语 31
小红 数学 32

 

 

 

 

 

 

 

 

 

 

 



 1 select 
 2 名字,
 3 sum(数学) 数学,
 4 sum(语文) 语文,
 5 sum(英语) 英语
 6 from
 7 (select name 名字,
 8 case when 科室='数学' then sum(分数) else 0 end 数学 ,
 9 case when 科室='语文' then sum(分数) else 0 end 语文 ,
10 case when 科室='英语' then sum(分数) else 0 end 英语 
11 FROM 表名 group by 科室,name) 表别名
12 group by 名字
名字 语文 英语  数学
小红 39 31 32
小黄  29  21  22
小明  99 11 12
posted @ 2021-01-14 15:02  巨菜的小鸟  阅读(604)  评论(0编辑  收藏  举报