• oracle 逗号分割,列转行,行转列


    SQL代码 列转行

    select
    REGEXP_SUBSTR(a.rolecode ,'[^,]+',1,l)
    rolecode
    from (
    select 'a,aa,aaa' rolecode from dual
    ) a,
    (SELECT LEVEL l FROM DUAL CONNECT BY LEVEL<=100) b
    WHERE l <=LENGTH(a.rolecode) - LENGTH(REPLACE(rolecode,','))+1  

    或者

    with a as (select 'ABC,AA,AD,ABD,JI,CC,ALSKD,ALDKDJ' id from dual)
    select regexp_substr(id,'[^,]+',1,rownum) id from a
    connect by rownum <= length(regexp_replace(id,'[^,]+'))

    SQL代码 行转列

    select name,coures,to_char(wmsys.wm_concat(xxx.score)) c 
     from 
     
     
      (select '小明' name,'语文' coures,90 score  from dual
     union all
     select '小明' name,'语文' coures,91 score  from dual
      union all
     select '小明' name,'数学' coures,90 score  from dual
     union  all
     select '小明' name,'数学' coures,91 score  from dual) xxx
     
      group by xxx.name,coures
  • 相关阅读:
    无限维
    黎曼流形
    why we need virtual key word
    TOJ 4119 Split Equally
    TOJ 4003 Next Permutation
    TOJ 4002 Palindrome Generator
    TOJ 2749 Absent Substrings
    TOJ 2641 Gene
    TOJ 2861 Octal Fractions
    TOJ 4394 Rebuild Road
  • 原文地址:https://www.cnblogs.com/gdzhong/p/4726315.html
Copyright © 2020-2023  润新知