계층쿼리 질문드립니다. 0 3 3,396

by 손님 계층쿼리 CONNECT BY [2012.03.23 11:26:32]


현재 테이블의 컬럼이 '자신코드', '상위코드'
이렇게 있는데요
레벨 단계가 4정도까지 있습니다.

형태가
================
자신코드, 상위코드
___0001,_______*
___0002,____0001
___0003,____0002
___0004,____0002
================
이런식으로 값이 저장되어 있는데요

만약,
자신코드가 0001인 값을 더블클릭 했을 때
자신코드가 0002인 , 상위코드가 0001것을 조회해서 보여주고,
하위에 0002를 가리키는게 있다면 0003, 0004 테이블 정보도 같이 다 보여주고 싶습니다.

유동적으로 조회하고 싶은데 어떤 방법으로 하는 게 좋을지 고수님께 자문을 구합니다.....
by 손님 [2012.03.23 13:07:53]
SELECT 자신코드,상위코드 
FROM TABLE 
START WITH 자신코드 = :INPUT_VALUE 
CONNECT BY PRIOR 자신코드 = 상위코드

by 손님 [2012.03.23 13:08:36]
with TEST_TABLE(MYCODE, PARENTCODE) as
(
    select '0001', '*' from DUAL union all
     select '0002', '0001' from DUAL union all
     select '0003', '0002' from DUAL union all
     select '0004', '0002' from DUAL
)
select 
    SYS_CONNECT_BY_PATH(mycode,'/'),
     level,
     a.*
     
from
    test_TABLE a
start with PARENTCODE = '0001'
connect by PARENTCODE = prior MYCODE;

start with PARENTCODE = '0001' <- 이 조건을 '0002' 로 바꾸면 0003, 0004만 나옵니다.


by 손님 [2012.03.23 14:19:10]
헛 너무나 쉽게 되네욥..... ㅠㅠ...며칠째 고민하던게 단번에 해결!!! 감사합니다!!!!
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입