--行列转换(行转列)
create table #tb
(
姓名 nvarchar(20),
科目 nvarchar(20),
成绩 int
)
go
insert into #tb
select '张三','语文',98
union
select '张三','数学',93
union
select '张三','英语',78
union
select '李四','数学',87
union
select '李四','英语',82
go
select * from #tb
go
declare @sql varchar(1000)
set @sql='select 姓名 '
select @sq[email protected]+',sum(case 科目 when '''+科目+''' then 成绩 else 0 end) as '+科目
from (select distinct 科目 from #tb) a
set @[email protected]+' from #tb group by 姓名'
exec (@sql)
go
drop table #tb
go