自动行列转置

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)

declare @sql varchar(500)
set @sql='select 姓名'
select @sql=@sql+',max(case 课程 when '''+课程+''' then 分数 else 0 end)['+课程+']'
from(select distinct 课程 from tb ) a
set @sql=@sql+' from tb group by 姓名'
exec(@sql)
View Code

 

posted @ 2013-08-23 15:45  lonlywaiting  阅读(131)  评论(0编辑  收藏  举报