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