--初始化环境
create table grade(
Code int not null,
Name varchar(10),
Scores int)
--测试数据
insert into grade
select 1, 'A', 100
union select 1, 'B', 90
union select 1, 'C', 85
union select 1, 'D', 60
union select 2, 'A', 92
union select 2, 'C', 72
union select 3, 'B', 83
--测试
declare @sql varchar(8000)
set @sql = 'select code '
select @sql = @sql + ', sum(case [Name] when ''' + [Name] + ''' then scores else 0 end) as ['+ [name] + ']'
from grade group by Name
select @sql = @sql + ' from grade group by code'
print @sql
exec (@sql)
--删除
drop table grade