ORACLE 一條記錄 某字段值以';'拆分為多條記錄


SELECT ID,班組,班次日期, REGEXP_SUBSTR(TIME_RANGE, '[^;]+', 1, LEVEL) TIME_RANGE --level為對應第level個所拆分字符串,正則表達式匹配分隔符拆分
  FROM 排班表
  WHERE 1 = 1
CONNECT BY LEVEL <= REGEXP_COUNT(TIME_RANGE, ';') + 1 --找到拆分字符串個數,即分隔符個數加1
  AND PRIOR ROWID = ROWID --遞歸自身
  AND PRIOR DBMS_RANDOM.VALUE IS NOT NULL --避免死循環
  AND REGEXP_SUBSTR(TIME_RANGE, '[^;]+', 1, LEVEL) IS NOT NULL


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM