首页 > 数据库技术 > 详细

MySQL -- 行转列 -- GROUP_CONCAT -- MAX(CASE WHEN THEN)

时间:2017-05-16 12:26:15      阅读:541      评论:0      收藏:0      [点我收藏+]

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

技术分享

 

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`;

技术分享

 -- -- -- -- -- -- -- --- - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --- - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --- - -- -- -- -- -- -- -- -- -- -- -- -- -

-- 合并字段显示 : 去重、排序
SELECT rid,GROUP_CONCAT(DISTINCT gid ORDER BY gid)
FROM gt_lighting.res_lights
GROUP BY rid;

技术分享

 

啦啦啦

MySQL -- 行转列 -- GROUP_CONCAT -- MAX(CASE WHEN THEN)

原文:http://www.cnblogs.com/ClassNotFoundException/p/6860615.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!