[oracle]逗号(或分号等)间隔的列,按这一列劈分后转多行


今天遇到个需求,要匹配两个表, 但是关联的字段,在另一个表中是放在一个字段中用分号分割的

怎么全部匹配呢?

后来在网上搜到了, 记录下

SELECT cp.ES_EXTNUMBER,
       cp.ES_AGENTID,
       cp.ES_CHSTATESTR,
       (sysdate-cp.ES_STARTDATETIME)*24*3600 es_times,
       REGEXP_SUBSTR(CP.ES_GROUP, '[^;]+', 1, L) AS ES_GROUP
       ,L
FROM aladdinpbx_extstate CP,
     (SELECT LEVEL L FROM DUAL CONNECT BY LEVEL <= 10)
WHERE L(+) <= LENGTH(CP.ES_GROUP) - LENGTH(REPLACE(CP.ES_GROUP, ';')) + 1
order by ES_EXTNUMBER

效果如下图:

来源点这里,其原文的分隔符是逗号, 我用的是分号,  如果你用其他符号, 也就是只要改改sql中的对应的分隔符就行了!^_^

 


免责声明!

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



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