开发者社区> 问答> 正文

数据库实现列转行,如何做?

19
如上图,不使用存储过程,通过sql如何将左边的数据整理成右边的样子?
上网找了好多例子,可大多都是固定列的,没找到像这样行列数量不确定的。
类似这样的需求应该挺常见的吧,我目前的办法是将数据取出来,然后在程序里面整理。
有简便一点的办法吗?

展开
收起
落地花开啦 2016-02-12 16:14:52 2603 0
1 条回答
写回答
取消 提交回答
  • 喜欢技术,喜欢努力的人

    给你个参考例子,你自己看看
    现在有一张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`

    2019-07-17 18:41:29
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
DTCC 2022大会集锦《云原生一站式数据库技术与实践》 立即下载
阿里云瑶池数据库精要2022版 立即下载
2022 DTCC-阿里云一站式数据库上云最佳实践 立即下载