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;