ORACLE将表中逗号分隔的字段内容拆分成多行的方法(列变行)

ORACLE将表中逗号分隔的字段内容拆分成多行的方法(列变行)

拆分前的效果:

ORACLE将表中逗号分隔的字段内容拆分成多行的方法(列变行)

拆分后的 效果:

ORACLE将表中逗号分隔的字段内容拆分成多行的方法(列变行)

SQL语句:

select * from (       
select enbid, REGEXP_SUBSTR(v_list, '[^,]+', 1, lv) v_value
  from (select 736021 as enbid, '5,51' as v_list from dual
        union all
        select 186168 as enbid, '53,49,50' as v_list from dual
        union all
        select 749409 as enbid, '7,68,51,11' as v_list from dual) a,
       (SELECT LEVEL lv FROM dual CONNECT BY LEVEL < 32) b
 WHERE b.lv <= 10 ) where v_value is not null;

 

ORACLE将表中逗号分隔的字段内容拆分成多行的方法(列变行)