mysql表行转列的用法

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

现在有一张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

转载于:https://my.oschina.net/jiuxiaoyao/blog/76584

你可能感兴趣的:(mysql表行转列的用法)