아래의 원본테이블의 내용을 조회결과 처럼 보이게 하려는데
잘 안되서 조언을 구해 봅니다.
생각보다 힘드네요 ㅠㅠ
[원본 테이블]
| PROCID | EDU_SEQ | EDU_ID_LIST | EDU_NAME_LIST | TITLE | DATE |
| 100000 | 1 | 00005,00006 | 홍길동,김유신 | 교육1 | ... |
| 100001 | 2 | 00005 | 홍길동 | 교육2 | |
| 100002 | 3 | 00006 | 김유신 | 교육3 |
[조회 결과]
| PROCID | EDU_SEQ | EDU_ID_LIST | EDU_NAME_LIST | TITLE | DATE |
| 100000 | 1 | 00005 | 홍길동 | 교육1 | ... |
| 100000 | 1 | 00006 | 김유신 | 교육1 | |
| 100001 | 2 | 00005 | 홍길동 | 교육2 | |
| 100002 | 3 | 00006 | 김유신 | 교육3 |
WITH t AS
(
SELECT '100000' procid, 1 edu_seq, '00005,00006' edu_id_list, '홍길동,김유신' edu_name_list, '교육1' title, '' dt FROM dual
UNION ALL SELECT '100001', 2, '00005', '홍길동', '교육2', '' FROM dual
UNION ALL SELECT '100002', 3, '00006', '김유신', '교육3', '' FROM dual
)
SELECT procid
, edu_seq
, REGEXP_SUBSTR(edu_id_list , '[^,]+', 1, lv) edu_id
, REGEXP_SUBSTR(edu_name_list, '[^,]+', 1, lv) edu_name
, title
, dt
FROM t
, (SELECT LEVEL lv FROM dual CONNECT BY LEVEL <= 9)
WHERE lv <= REGEXP_COUNT(edu_id_list, '[^,]+')
ORDER BY procid, lv
;