DB

[오라클] 계층형 쿼리(START WITH CONNECT BY)

1223gogo 2023. 1. 30. 00:05

WHERE

START WITH

CONNECT BY

절의 구조를 지닌다.

 

쿼리가 인식하는 순서는 다음과 같다.

1) START WITH 절 : 시작위치를 지정

2) CONNECT BY 절 : PRIOR 을 사용해서 부모와 자식의 관계를 명시한다. 

PRIOR 은 실제 부모노드의 값을 가지고 있는 컬럼의 앞에 명시해준다.

예시)

이름 ID 관리자ID
CEO 1000 NULL
Manager1 2000 1000
Maneger2 3000 1000

위의 데이터의 경우 

순방향 전개일 경우(START WITH 절에 부모노드를 조회한 경우 관리자ID=NULL 등)

CONNECT BY PRIOR ID = 관리자ID

또는 CONNECT BY 관리자ID = PRIOR ID

3) WHERE 절 : 마지막으로 인식된다.

 

참조 블로그.

https://blog.naver.com/javaking75/220010288704

 

[오라클] 계층형 쿼리 ( START WITH ... CONNECT BY )

계층형 쿼리(Hierarchical Query)는 오라클에서만 지원하고 있는 아주 막강한 기능 중의 하나다.   ...

blog.naver.com

https://kimkoonho91.tistory.com/8

 

[오라클, Oracle] 계층 쿼리 (hierarchical query) - 계층 쿼리 절

계층 쿼리 절(hierarchical query clause)은 오라클 데이터베이스의 전통적인 계층 쿼리 구문이다. ​ [기본 문법] 계층 쿼리 절은 WHERE 절 다음에 기술하며, FROM 절이 수행된 후 수행된다. START WITH 절과 CO

kimkoonho91.tistory.com

https://kimkoonho91.tistory.com/10

 

[오라클, Oracle] 계층 쿼리 (hierarchical query) - 고급 주제

[노드 제거] CONNECT BY 절이나 WHERE 절에 조건을 기술하면 조건을 만족하지 않는 노드를 제거할 수 있다. 아래 쿼리는 CONNECT BY 절에 EMPNO 7698 조건을 기술했다. CONNECT BY 절에 조건을 기술하면 조건을

kimkoonho91.tistory.com