MySQL中列转行进行合并字段的方法(max,group_cancat函数)

2019-01-07 18:23 阅读 563 次 评论 0 条

在MySQL数据库中,进行列转行合并字段的方法介绍如下:

数据表:

列转行:利用max(case when then)

max---聚合函数 取最大值
(case course when '语文' then score else 0 end) ---判断
 as 语文---别名作为列名
SELECT
    `name`,
    MAX(
        CASE 
        WHEN  course='语文' THEN
            score
        END
    ) AS 语文,
    MAX(
        CASE 
        WHEN course='数学' THEN
            score
        END
    ) AS 数学, 
    MAX(
        CASE 
        WHEN course='英语' THEN
            score
        END
    ) AS 英语
FROM
    student
GROUP BY `name`;

合并字段显示:利用group_cancat(course,”:”,”score”)

SELECT
    `name`,
    GROUP_CONCAT(course, ":", score) AS 成绩
FROM
    student
GROUP BY
    `name`;

group_concat(),手册上说明:该函数返回带有来自一个组的连接的非NULL值的字符串结果。

通俗点理解,其实是这样的:group_concat()会计算哪些行属于同一组,将属于同一组的列显示出来。要返回哪些列,由函数参数(就是字段名)决定。分组必须有个标准,就是根据group by指定的列进行分组。

 

部分内容转载自:https://www.cnblogs.com/thomas12112406/p/5813394.html

版权声明:本文著作权归原作者所有,欢迎分享本文,谢谢支持!
转载请注明:MySQL中列转行进行合并字段的方法(max,group_cancat函数) | 猿笔记
分类:MySQL, 数据库笔记 标签:

发表评论


表情