계층 구조에서
다음과 같이 구분자( comp_id ) 를 두고 여러개의 계층이 존재 합니다.
select c.*, SUBSTR(SYS_CONNECT_BY_PATH(c.cp_name||'('||cp_code||')', '>'), 2) catedir
from cate_table c
where cp_code='0824'
START WITH c.cp_code = SUBSTR(c.cp_code, 1, 2)
CONNECT BY PRIOR c.cp_code = SUBSTR(c.cp_code, 1, LENGTH(c.cp_code)-2)
CP_P_CODE ,COMP_ID ,CP_CODE, CATEDIR
08 ,2DDB, 0824 ,문화생활(08)>해수욕장(0824)
08 ,2DDB, 0824 ,음식료서비스(08)>해수욕장(0824)
위 결과 값으로 나온 값입니다
또 아래 퀘리문과 결과 값을 보면 comp_id 로 카테고리를 구분 하는데
즉 부모 코드 cp_p_code 값이 comp_id 갯수 만큼 나올수 있다는 것이죠.
원하는 결과 값은 같은 comp_id 부모 코드값만 뽑아 내려 합니다.
select * from cate_table where cp_code='08'
CP_SEQ CP_CODE CP_P_CODE CP_NAME COMP_ID
571 08 1 문화생활 xxxx
1656 08 2 음식료서비스 bbbb
select * from cate_table where cp_code='0824'
CP_SEQ CP_CODE CP_P_CODE CP_NAME COMP_ID
0824 08 해수욕장 xxxx
즉 위에서 code 0824 결과 값으로 comp_id 값이 xxxx 인 데이타만
CP_P_CODE COMP_ID CP_CODE CATEDIR
08 2DDB 0824 문화생활(08)>해수욕장(0824)
값만 뽑아내는 퀘리문은 어떻게 만들어야 하나요.
START WITH c.cp_code = SUBSTR(c.cp_code, 1, 2)
CONNECT BY PRIOR c.cp_code = SUBSTR(c.cp_code, 1, LENGTH(c.cp_code)-2)
and comp_id =comp_id <<< 이런식으론 안되더라구요 ㅡ,.ㅡ;;
|