这个SQL语句如何写,求指教!

表 students 中有如下数据:

姓名    科目    成绩

张三    语文     20

张三    数学     30

张三    英语     40

李四    语文     50

李四    数学     60

李四    英语     70

 

如何得到结果:

姓名    语文     数学      英语

张三     20         30         40

李四     50         60         70

[code="sql"]select '姓名' t.name,
'语文' (select score from student s where s.name=t.name and s.sub='chinese')
from student t group by t.name[/code]

数学 英语照着写

SELECT 姓名,
sum(case 科目 when '语文' then 分数 else 0 end) 语文,
sum(case 科目 when '数学' then 分数 else 0 end) 数学,
sum(case 科目 when '英语' then 分数 else 0 end) 英语,
convert(avg(分数 * 1.0),DECIMAL(18,2)) 平均分,
sum(分数) 总分

from student

GROUP BY 姓名;