오라클,SQL, 계층형 쿼리(Hierarchical Query), START WITH , CONNECT BY , ORDER SIBLINGS BY
http://ojc.asia/bbs/board.php?bo_table=LecSQLnPlSql&wr_id=626
6.6 계층형 쿼리(Hierarchical Query)
n EMP 테이블의 MGR 칼럼은 외래키로 자기자신 테이블 EMP의 EMPNO 값을 참조하는 관리자를 뜻하는 칼럼이다. 이렇게 계층관계 칼럼이 있는 경우 계층구조를 이용하여 데이터를 추출 할 수 있는 계층적 질의문을 사용하면 된다.
[형식]
START WITH : 시작 데이터를 지정한다.
CONNECT BY : 계층구조에서 다음에 연결될 데이터를 지정한다.
PRIOR : CONNECT BY 절에 이용되며 현재 읽은 칼럼을 지정한다.
PRIOR 자식 = 부모 (TOP DOWN 형태 출력)
PRIOR 부모 = 자식 (BOTTOM UP 형태 출력)
NOCYCLE : 데이터를 펼치면서 이미 나타났던 데이터가 다시 나타나는 경우 CYCLE이 형성되
었다고 한다. 이때 오류가 발생하는데 NOCYCLE을 추가하면 사이클이 발생한
이후의 데이터를 출력하지 않는다.
ORDER SIBLINGS BY : 동일한 LEVEL인 경우 노드를 형제 노드라고 하고 형제노드들의
정렬순서를 지정한다.
n 계층형 질의에서 사용되는 가상칼럼
LEVEL : 최상위 루트 데이터가 1, 하위로 갈수록 1씩 증가
CONNECT_BY_ISLEAF : 최하단 리프데이터이면 1, 아니면 0
CONNECT_BY_ISCYCLE : 해당 데이터가 조상으로써 존재하면 1, 아니면 0, 조상이란 자신으로부터 루트까지의 경로에 존재하는 데이터를 의미한다.
n 계층형 쿼리에서 사용가능한 함수
SYS_CONNECT_BY_PATH (칼럼, 경로분리자): 루트데이터에서부터 전개할 데이터 까지의 경로를 표시한다.
CONNECT_BY_ROOT 칼럼 : 현재 전개할 데이터의 루트 데이터를 표시한다.
댓글 없음:
댓글 쓰기