SQL 面试经典问题 行列互相转化

SQL 面试经典问题 行列互相转化


1.行转列

select 姓名 as 姓名 ,
max(case 课程 when '语文' then 分数 else 0 end) 语文,
max(case 课程 when '数学' then 分数 else 0 end) 数学,
max(case 课程 when '物理' then 分数 else 0 end) 物理
from tb
group by 姓名


2.列转行

select * from (
select 姓名, "语文", 语文 as 分数 from grade2
union all
select 姓名, "数学", 数学 as 分数 from grade2
union all
select 姓名, "英语", 英语 as 分数 from grade2

) teptable



posted @ 2016-09-20 21:28  yuerspring  阅读(122)  评论(0编辑  收藏  举报