CONNECT_BY_ISLEAF 라는게 있었네. ㅎㅎ
기본적으로 CONNECT BY 절을 사용해서 계층형을 뿌리고
SELECT 절에 CONNECT_BY_ISLEAF 를 추가하면 최하위일때는 '0' 아닐떄는 1로 표기가됨.
ex)
SELECT level,
CONNECT_BY_ISLEAF LEAF
FROM WM_WBS_INFO
WHERE WBS_VERSION = 6
START WITH WBS_PARENT_ID IS NULL
AND WBS_VERSION = 6
CONNECT BY PRIOR WBS_ID = WBS_PARENT_ID
AND WBS_VERSION = 6
tip.1
1. START WITH는 처음 시작할 조건을 의미.
2. CONNECT BY는 1.의 데이터와 연결된 로우를 반복하여 찾음.
쉽게 생각해 Prior쪽의 컬럼이 하위이면 밑으로, 상위코드이면 위로 찾는 구조.
tip.2
나도 이번에 하다보니까 안건데. 뭔가 버전같이 관리가 되는 항목이 있다면 START WITH절, CONNECT BY 절에도 버전에 관련된 조건이 추가되어야함. 안그럼 중복발생!!!
'공부이야기 > Oracle' 카테고리의 다른 글
[오라클] EXPDP / IMPDP (0) | 2014.12.16 |
---|---|
[오라클] EM접속시 '이 웹 사이트의 보안 인증서에 문제가 있습니다.' 해결 (1) | 2014.01.09 |
[오라클]DB링크 (0) | 2013.12.11 |
[오라클] Oracle 11g 패스워드 대소문자 인식 (0) | 2012.10.17 |
[오라클] 11g XE 기본 세팅 방법 (0) | 2012.10.17 |