首页 > 数据库技术 > 详细

SQL 行转列的两种做法

时间:2016-10-19 09:39:10      阅读:264      评论:0      收藏:0      [点我收藏+]

if object_id(‘tb‘)is not null drop table tb
Go
create table tb(姓名 varchar(10),课程 varchar(10),分数 int)
insert into tb values(‘张三‘,‘语文‘,74)
insert into tb values(‘张三‘,‘数学‘,83)
insert into tb values(‘张三‘,‘物理‘,93)
insert into tb values(‘李四‘,‘语文‘,74)
insert into tb values(‘李四‘,‘数学‘,84)
insert into tb values(‘李四‘,‘物理‘,94)
go
select * from tb

-- 使用case when (SQL2000以上)
select 姓名,
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 姓名

-- 使用pivot
select * from tb pivot(max(分数) for 课程 in (语文,数学,物理))a

SQL 行转列的两种做法

原文:http://www.cnblogs.com/chengeng/p/5975925.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!