쿼리 작성에 애를 먹고 있습니다.
좀 도와주세요
ID SEQ SUB_ID SUB_SEQ
-----------------------------------------------------------------
A 1 B 56
B 56 C 2
B 56 C 3
C 2 D 10
C 3 D 18
C 4 D 10
C 10 D 10
D 10 E 4
D 10 E 1
D 18 E 9
D 18 E 5
와 같이 데이터가 있을 경우
SELECT REGEXP_SUBSTR( ID, '[^,]+', 1, 1) v1,
REGEXP_SUBSTR( ID, '[^,]+', 1, 2) v2,
REGEXP_SUBSTR( ID, '[^,]+', 1, 3) v3,
REGEXP_SUBSTR( ID, '[^,]+', 1, 4) v4
FROM (
SELECT SYS_CONNECT_BY_PATH(SUB_ID || TO_CHAR(SUB_SEQ, '00'), ',') ID,
ROWNUM RN
FROM TMP
START WITH ID = 'A' AND SEQ = 1
CONNECT BY PRIOR SUB_ID = ID AND SUB_SEQ = SEQ
) A
ORDER BY A.RN
으로 조회하니 조회가 안되고 AND SUB_SEQ = SEQ 이부분을 빼면 조회가 이상하게 됩니다.
CONNECT BY PRIOR SUB_ID||TO_CHAR(SUB_SEQ) = ID||TO_CHAR(SEQ) 로 하면 조회시간이 엄청납니다.
데이터가 13,000,000 정도 있는 테이블이라....
C 4 D 10
C 10 D 10
이부분도 포함되어 나오는 것 갔습니다
최종 결과는 아래와 같으면 좋겠습니다.
V0 V1 V2 V3 V4
-----------------------------------------
A 01 B 56
A 01 B 56 C 02
A 01 B 56 C 02 D 10
A 01 B 56 C 02 D 10 E 04
A 01 B 56 C 02 D 10 E 01
A 01 B 56 C 02 D 10 E 09
A 01 B 56 C 02 D 10 E 05
A 01 B 56 C 02 D 18
A 01 B 56 C 02 D 18 E 04
A 01 B 56 C 02 D 18 E 01
A 01 B 56 C 02 D 18 E 09
A 01 B 56 C 02 D 18 E 05
A 01 B 56 C 03
A 01 B 56 C 03 D 10
A 01 B 56 C 03 D 10 E 04
A 01 B 56 C 03 D 10 E 01
A 01 B 56 C 03 D 10 E 09
A 01 B 56 C 03 D 10 E 05
A 01 B 56 C 03 D 18
A 01 B 56 C 03 D 18 E 04
A 01 B 56 C 03 D 18 E 01
A 01 B 56 C 03 D 18 E 09
A 01 B 56 C 03 D 18 E 05
|