ZBLOG

mysql 行转列 给出示例

假设有如下的表结构:

id name course
1 Tom Math
2 Tom English
3 Tom Science
4 John Math
5 John English
6 John History

我们想要将每个学生的课程转换成列,得到如下的结果:

name Math English Science History
Tom Math English Science NULL
John Math English NULL History

可以使用MySQL中的GROUP BYCASE WHEN语句实现:

SELECT 
  name,
  MAX(CASE WHEN course = 'Math' THEN course END) AS Math,
  MAX(CASE WHEN course = 'English' THEN course END) AS English,
  MAX(CASE WHEN course = 'Science' THEN course END) AS Science,
  MAX(CASE WHEN course = 'History' THEN course END) AS History
FROM 
  students
GROUP BY 
  name;

以上SQL语句会将每个学生的课程按照名称转换成列,未选修的课程用NULL填充。

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=1880

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?