계층쿼리 질문드립니다! 0 2 7,980

by 꼬막 [Oracle 기초] [2025.02.11 10:53:22]


안녕하세요, 이해가 잘 안되다보니 여기까지 다시 찾아오게되었네요..ㅎ

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
-- 데이터 상황 (10건) 계층형x
ITEM_CODE              P_ITEM_CODE
TEST_C-2_002_A          TEST_C-2_L017A002
TEST_C-2_002_A_1        TEST_C-2_002_A
TEST_C-2_002_A_2        TEST_C-2_002_A
TEST_C-2_002_B          TEST_C-2_L017A002
TEST_C-2_002_B_1        TEST_C-2_002_B
TEST_C-2_003_A          TEST_C-2_L017A003
TEST_C-2_003_B          TEST_C-2_L017A003
TEST_C-2_003_C          TEST_C-2_L017A003
TEST_C-2_003_D          TEST_C-2_L017A003
TEST_C-2_004            TEST_C-2_L017A004
--
 SELECT ITEM_CODE, P_ITEM_CODE
    FROM T
--
 
 
-- 계층형 쿼리 실행시 (13건)
SELECT ITEM_CODE, P_ITEM_CODE
    FROM T
CONNECT BY PRIOR ITEM_CODE = P_ITEM_CODE
 
TEST_C-2_002_A_1    TEST_C-2_002_A
TEST_C-2_002_A_2    TEST_C-2_002_A
TEST_C-2_002_B_1    TEST_C-2_002_B
TEST_C-2_002_A      TEST_C-2_L017A002
TEST_C-2_002_A_1    TEST_C-2_002_A
TEST_C-2_002_A_2    TEST_C-2_002_A
TEST_C-2_002_B      TEST_C-2_L017A002
TEST_C-2_002_B_1    TEST_C-2_002_B
TEST_C-2_003_A      TEST_C-2_L017A003
TEST_C-2_003_B      TEST_C-2_L017A003
TEST_C-2_003_C      TEST_C-2_L017A003
TEST_C-2_003_D      TEST_C-2_L017A003
TEST_C-2_004        TEST_C-2_L017A004
 
위처럼 꼬리가 존재하는? ITEM_CODE가 중복으로 3건 더 들어가더라구요..
P_ITEM_CODE가 연결이 안되는 코드로 존재하여 발생하는거같은데...
START WITH의 기준점을 어떻게 두어야하는지 모르겠습니다 ㅜ ㅜ

 

by 마농 [2025.02.11 13:42:32]
1
START WITH p_item_code NOT IN (SELECT item_code FROM t)

 


by 꼬막 [2025.02.11 16:05:57]

아아.. 이런식으로 서브쿼리를 사용할수있엇네요!!! 매번 감사합니다!

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입