zoukankan      html  css  js  c++  java
  • MYSQL多行合并成一行多列

    原数据:
    id      code           name            value
             -----------      ----------        --------  
    1      2014000          A                       10
    2      2014000          B                       9
    3      2014001          C                       100
    4      2014002          D                       4
    5      2014002          E                        5 
    6      2014003          F                       9
    7     2014003          G                      10 

    期望结果:
              code           name1            value1           name2            value2
             -----------       ---------              ---------          ---------              ---------   
             2014000          A                      10                   B                   9
             2014001          C                     100               null               null                                         
             2014002         D                       4                   E                     5
             2014003         F                       9                   G                   10



    注意:同1个ID最多只2条记录,会出现相同value。



    CREATE
    TABLE # (ID INT, code INT, NAME CHAR(1), VALUE VARCHAR(10)) INSERT INTO # VALUES (1,2014000,'A','10'), (2,2014000,'B','9'), (3,2014001,'C','100'), (4,2014002,'D','4'), (5,2014002,'E','5'), (6,2014003,'F','9'), (7,2014003,'G','10') SELECT code,MIN(name) AS name1,MIN(CAST(REPLACE(value,' ','') AS INT)) AS value1, CASE COUNT(ID) WHEN 1 THEN NULL ELSE MAX(name) END AS name2, CASE COUNT(ID) WHEN 1 THEN NULL ELSE MAX(CAST(REPLACE(value,' ','') AS INT)) END AS value2 FROM # GROUP BY code
  • 相关阅读:
    实现不限层级的Element的NavMenu
    vue_插槽的理解和使用
    vue 动态修改路由参数
    什么是回流,什么是重绘,有什么区别?
    Vue路由获取路由参数
    【前端图表】echarts实现散点图x轴时间轴
    为什么 char 数组比 String 更适合存储密码?
    MySQL 日期时间类型怎么选?千万不要乱用!
    MySQL not exists 真的不走索引么?
    谷歌开源的代码评审规范,值得借鉴!
  • 原文地址:https://www.cnblogs.com/onetwo/p/6393826.html
Copyright © 2011-2022 走看看