[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