select * from result
--列变行
select sid,result.name ,语文=isnull(sum(case course when '语文' then grade end),0),
数学=isnull(sum(case course when '数学' then grade end),0),
英语=isnull(sum(case course when '英语' then grade end),0),
物理=isnull(sum(case course when '物理' then grade end),0),
化学=isnull(sum(case course when '化学' then grade end),0),sum(grade) as 合计
from result
group by sid,result.name
order by sid