mysql求纵表变横表的解决办法

maitalong 2016-07-05 11:01:37
示意表
no name subject score
001 张三 数学 39
001 张三 语文 89
002 李四 数学 99
002 李四 语文 88

希望得到以下格式输出:
no name shuxuicore yuwenscore
001 张三 39 89
002 李四 99 88

我试了一种方法 ,用If条件语句把每条记录展开,最后用sum来做,但varchar类型的no字段,不好整,李四的no 显示不出来,
急求,多谢了!
...全文
160 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ACMAIN_CHM 2016-07-05
  • 打赏
  • 举报
回复
引用
http://blog.csdn.net/acmain_chm/article/details/4283943 MySQL交叉表 在某些数据库中有交叉表,但在MySQL中却没有这个功能,但网上看到有不少朋友想找出一个解决方法,特发贴集思广义。http://topic.csdn.net/u/20090530/23/0b782674-4b0b-4cf5-bc1a-e8914aaee5ab.html?96198现整理解法如下:数据样本: create table tx( id int primary key, c1 c...
.
rucypli 2016-07-05
  • 打赏
  • 举报
回复
select no,name,case when subject="数学" then score end as shuxuecore,case when subject="语文" then score end as yuwenscore from tb group by no,name
maitalong 2016-07-05
  • 打赏
  • 举报
回复
引用 1 楼 rucypli 的回复:
select no,name,case when subject="数学" then score end as shuxuecore,case when subject="语文" then score end as yuwenscore from tb group by no,name
这个不行,这样显示出每个学生是多行,没有成绩的那栏是0
maitalong 2016-07-05
  • 打赏
  • 举报
回复
引用 2 楼 ACMAIN_CHM 的回复:
引用
http://blog.csdn.net/acmain_chm/article/details/4283943 MySQL交叉表 在某些数据库中有交叉表,但在MySQL中却没有这个功能,但网上看到有不少朋友想找出一个解决方法,特发贴集思广义。http://topic.csdn.net/u/20090530/23/0b782674-4b0b-4cf5-bc1a-e8914aaee5ab.html?96198现整理解法如下:数据样本: create table tx( id int primary key, c1 c...
.
你这个方法我用过,最重要我这情况有个特殊性,就是no学号必须要显示出来,

56,687

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧