CONNECT_BY_ROOT은 컬럼 값으로 루트 행의 값을 반환한다.
이 연산자는 SELECT 문 내의 WHERE 절 및 ORDER BY 절에서 사용할 수 있다.
다음은 계층 질의 결과 행에 대하여 루트 행의 id 값을 조회하는 예제이다.
-- 각 행마다 루트 행의 id 값을 확인하기
SELECT id, mgrid, name, CONNECT_BY_ROOT id
FROM tree
START WITH mgrid IS NULL
CONNECT BY PRIOR id=mgrid
ORDER BY id;
id mgrid name connect_by_root id
==========================================================
1 null Kim 1
2 null Moy 2
3 1 Jonas 1
4 1 Smith 1
5 2 Verma 2
6 2 Foster 2
7 6 Brown 2
PRIOR 연산자는 컬럼 값으로 부모 행의 값을 반환하고, 루트 행에 대해서는 NULL을 반환한다.
이 연산자는 SELECT 문 내의 WHERE 절, ORDER BY 절 및 CONNECT BY 절에서 사용할 수 있다.
다음은 계층 질의 결과 행에 대하여 부모 행의 id 값을 조회하는 예제이다.
-- 각 행마다 부모 행의 id 값을 확인하기
SELECT id, mgrid, name, PRIOR id as "prior_id"
FROM tree
START WITH mgrid IS NULL
CONNECT BY PRIOR id=mgrid
ORDER BY id;
id mgrid name prior_id
========================================
1 null Kim null
2 null Moy null
3 1 Jonas 1
4 1 Smith 1
5 2 Verma 2
6 2 Foster 2
7 6 Brown 6