开发者社区> 问答> 正文

mysql多行转一行多列有啥好办法吗?

本问题来自云栖社区【阿里Java技术进阶2群】。https://yq.aliyun.com/articles/690084 点击链接欢迎加入社区大社群。

展开
收起
李博 bluemind 2019-05-06 17:45:24 5108 0
1 条回答
写回答
取消 提交回答
  • 我的个人理解:mysql 行变列(多行变成一行/多行合并成一行/多行合并成多列/合并行),我觉得这都是一个意思

    数据库结构如图:

    image
    而我想让同一个人的不同成绩变成此人在这一行不同列上显示出来,此时分为2中展现:

    第一种展现如图----【多行变一列】(合并后的数据在同一列上):
    image
    sql如下:

    select name ,group_concat(sore Separator ';') as score from stu group by name
    第二种展现如图----【多行变多列】(合并后的数据在不同列上):
    image
    sql如下:

    SELECT name ,
    MAX(CASE type WHEN '数学' THEN score ELSE 0 END ) math,
    MAX(CASE type WHEN '英语' THEN score ELSE 0 END ) English ,
    MAX(CASE type WHEN '语文' THEN score ELSE 0 END ) Chinese
    FROM stu
    GROUP BY name

    2019-07-17 23:34:50
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
One Box: 解读事务与分析一体化数据库 HybridDB for MySQL 立即下载
One Box:解读事务与分析一体化数据库HybridDB for MySQL 立即下载
如何支撑HTAP场景-HybridDB for MySQL系统架构和技术演进 立即下载

相关镜像