--鍵一張臨時表
create table #t
(
名字 varchar(20),
課程 varchar(20),
分數 int
)
insert into #t values('張三','數學','88')
insert into #t values('張三','語文','99')
insert into #t values('張三','英語','77')
insert into #t values('李四','語文','77')
insert into #t values('李四','數學','88')
insert into #t values('李四','英語','99')
insert into #t values('王五','英語','99')
insert into #t values('李四','化學 ','99')
select * from #t--查詢圓表數據
------行轉列
declare @sql varchar(8000)
set @sql = 'select 名字 '
select @sql = @sql + ' , max(case 課程 when ''' + 課程 + ''' then 分數 else 0 end) [' + 課程 + ']'
from (select distinct 課程 from #t) as a
set @sql = @sql + ' from #t group by 名字'
exec(@sql)
drop table #t
----------------------------------------