数据库中数据为下图:

1.使用静态SQL
select 姓名, max(case 课程 when '语文' then 分数 else 0 end)语文,
max(case 课程 when '数学' then 分数 else 0 end)数学,
max(case 课程 when '物理' then 分数 else 0 end)物理
from dbo.tb group by 姓名
查询结果:

2.使用pivot查询
select * from dbo.tb pivot(max(分数) for 课程 in(语文,数学,物理))temp
查询结果:

浙公网安备 33010602011771号