姓名 课程 分数
tom 语文 90
tom 数据 95
tom 英文 80
jon 语文 89
jon 数据 96
jon 英文 87
旋转为
姓名 数据 英文 语文
jon 96 87 89
tom 95 80 90
语句
declare @sql as nvarchar(1000)
select @sql='select 姓名 '
select @sql=@sql+', sum(case 课程 when '''+课程+'''then 分数 else 0 end ) as '''+课程+'''' from (select distinct 课程 from table1) as a
select @sql=@sql+' from table1 group by 姓名'
exec(@sql)
tom 语文 90
tom 数据 95
tom 英文 80
jon 语文 89
jon 数据 96
jon 英文 87
旋转为
姓名 数据 英文 语文
jon 96 87 89
tom 95 80 90
语句
declare @sql as nvarchar(1000)
select @sql='select 姓名 '
select @sql=@sql+', sum(case 课程 when '''+课程+'''then 分数 else 0 end ) as '''+课程+'''' from (select distinct 课程 from table1) as a
select @sql=@sql+' from table1 group by 姓名'
exec(@sql)

浙公网安备 33010602011771号