天天看点

行列转换(行转列)

--行列转换(行转列)

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