select '小明' as name,'数学' as subjects,'100' as scores
union
select '小明' as name,'语文' as subjects,'95' as scores
union
select '小明' as name,'英语' as subjects,'90' as scores
union
select '小张' as name,'数学' as subjects,'100' as scores
union
select '小张' as name,'语文' as subjects,'98' as scores
union
select '小张' as name,'英语' as subjects,'99' as scores
SQLServer 列转行使用--Pivot函数使用
select * from
(select '小明' as name,'数学' as subjects,100 as scores
union
select '小明' as name,'语文' as subjects,95 as scores
union
select '小明' as name,'英语' as subjects,90 as scores
union
select '小张' as name,'数学' as subjects,100 as scores
union
select '小张' as name,'语文' as subjects,98 as scores
union
select '小张' as name,'英语' as subjects,99 as scores) as tabs
pivot (
sum(scores)
for subjects in ([数学],[语文],[英语])
) as 分数