我的表结构: ID(主键) studentNo courseNo score 101200199 201200298 301200397 402200195 502200294 602200393 ----------------------------------------------- 查询结果 studentNo 200120022003 01999897 02959493 declare @s varchar(8000) set @s=@s+',['+cast(courseNo as varchar)+']=sum(case courseNo when '''+cast(courseNo as varchar)+''' then score end)' from 表 group by courseNo exec('select studentNo'+@s+' from 表 group by studentNo')