oracle 将以逗号分隔的列拆成多行的的方法


 

原表如下 

select * from hs_acct.custattach a where a.client_id='888827395';

将列拆分成多行的语句

select 
*
from 
(
  ----将列拆分成多行的语句
  select distinct a.client_id
     ,REGEXP_SUBSTR(a.en_branch_no, '[^,]+', 1, L) AS en_branch_no 
  from hs_acct.custattach a, (SELECT LEVEL L FROM DUAL CONNECT BY LEVEL <= 10000) b
  WHERE b.L(+) <= LENGTH(a.en_branch_no) - LENGTH(REPLACE(a.en_branch_no, ',')) + 1
) tt
where trim(tt.en_branch_no) is not null
and tt.client_id='888827395';

 

 

 

 

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM