Open Source RDBMS - Seamless, Scalable, Stable and Free

한국어 | Login |Register

Versions available for this page: CUBRID 8.2.1 |  CUBRID 8.3.0 |  CUBRID 8.3.1 |  CUBRID 8.4.0 |  CUBRID 8.4.1 |  CUBRID 8.4.3 |  CUBRID 9.0.0 | 

계층 질의문에서 사용 가능한 연산자

CONNECT_BY_ROOT 연산자

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 연산자

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