계층쿼리 질문드립니다! 2

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


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

-- 데이터 상황 (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]
 START WITH p_item_code NOT IN (SELECT item_code FROM t)

 


by 꼬막 [2025.02.11 16:05:57]

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

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