zoukankan      html  css  js  c++  java
  • mysql列转行 行转列

    列转行

    SELECT 
         flag
        ,substring_index(substring_index(t.context,',', b.help_topic_id + 1), ',', -1) as result
    FROM (
        select 'aa' as flag,'1,2,3,4,5,6,7' as context union all
        select 'bb' as flag,'1,2,3,4,5,6' as context union all
        select 'cc' as flag,'1,2,3,4,5' as context union all
        select 'dd' as flag,'1,2,3,4' as context union all
        select 'ee' as flag,'1,2,3' as context 
    ) t 
    join (
        select 0 as help_topic_id union all
        select 1 as help_topic_id union all
        select 2 as help_topic_id union all
        select 3 as help_topic_id union all
        select 4 as help_topic_id union all
        select 5 as help_topic_id union all
        select 6 as help_topic_id union all
        select 7 as help_topic_id union all
        select 8 as help_topic_id union all
        select 9 as help_topic_id
    ) b 
        ON b.help_topic_id < (LENGTH(t.context) - LENGTH(REPLACE(t.context, ',', '')) + 1)
    order by flag,result
    ;

    行转列使用group_concat函数即可

    select
         name
        ,group_concat(age) as ages
    from (
        select 'a' as name, 0 as age union all
        select 'b' as name, 1 as age union all
        select 'b' as name, 2 as age union all
        select 'c' as name, 3 as age union all
        select 'c' as name, 4 as age union all
        select 'c' as name, 5 as age union all
        select 'd' as name, 6 as age union all
        select 'd' as name, 7 as age union all
        select 'd' as name, 8 as age union all
        select 'd' as name, 9 as age
    ) b 
    group by name
    ;
  • 相关阅读:
    防抖函数
    video.js汉化
    vscode 设置
    webpack配置
    寄生组合继承
    数组排序
    操作节点的方法
    vscde软件
    vue目录详解
    前端
  • 原文地址:https://www.cnblogs.com/chenzechao/p/12054733.html
Copyright © 2011-2022 走看看