如上图,不使用存储过程,通过sql如何将左边的数据整理成右边的样子?
上网找了好多例子,可大多都是固定列的,没找到像这样行列数量不确定的。
类似这样的需求应该挺常见的吧,我目前的办法是将数据取出来,然后在程序里面整理。
有简便一点的办法吗?
给你个参考例子,你自己看看
现在有一张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`
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。