现在有一张score表,存储学生每门课的成绩,结构数据如下:
idnamesubjectscore
1张三 语文90
2张三 数学88
3张三 外语75
4李四 语文99
5李四 数学70
6李四 外语95
7李五 语文88
8李五 数学85
9李五 外语90
现在要求列出每个学生所有课程的成绩.这就是一个典型的行转列的应用
sql 语句如下:
SELECT name,max(case subject when '语文' then score else 0 end) as '语文',max(case subject when '数学' then score else 0 end) as '数学',max(case subject when '外语' then score else 0 end) as '外语' FROM `score` group by name
查询结果如下:
name语文数学外语
张三 908875
李五 888590
李四 997095
上面只是很简单的举了个例子..至于实际的应用大家可以对照参考一下
idnamesubjectscore
1张三语文90
2张三数学88
3张三外语75
4李四语文99
5李四数学70
6李四外语95
7李五语文88
8李五数学85