본문 바로가기




Future Items

오라클 CONNECT BY LEVEL 사용 방법

by 독서하는 AI 2023. 11. 2.
 
반응형

오라클 데이터베이스는 계층 구조 데이터를 쿼리하기 위한 CONNECT BY LEVEL 절을 제공합니다. CONNECT BY LEVEL 절은 계층 구조를 쿼리하기 위한 재귀적인 쿼리를 작성하는 데 사용됩니다.

 

이 절을 사용하면 계층 구조에 속한 모든 노드를 검색하거나, 특정 조건을 충족하는 노드를 찾을 수 있습니다.

 

CONNECT BY LEVEL 절의 구문

CONNECT BY LEVEL [condition]

CONNECT BY LEVEL 절은 한 테이블에서 계층 구조 정보를 검색하는 데 사용됩니다. 이 절은 일반적으로 WHERE 절과 함께 사용되며, WHERE 절은 계층 구조를 제한하는 추가적인 조건을 포함할 수 있습니다.

 

CONNECT BY LEVEL 절은 다음과 같은 구문을 사용하여 사용됩니다.

SELECT [columns]  FROM [table] [WHERE condition] CONNECT BY LEVEL <= [level limit] [START WITH condition];

위의 구문에서 [columns]는 결과에 반환할 열의 목록, [table]은 계층 구조 정보가 저장된 테이블, [WHERE condition]은 계층 구조를 제한하는 추가 조건, [level limit]은 출력되는 노드의 최대 레벨, [START WITH condition]은 계층 구조를 시작할 노드를 지정합니다.

CONNECT BY LEVEL 절의 예제


CONNECT BY LEVEL 절은 실제 예제를 통해 이해하기가 더 쉽습니다. 다음은 계층 구조 테이블 "employees"를 사용한 예제입니다.

EMPLOYEE_ID EMPLOYEE_NAME MANAGER_ID
1 John -
2 Jane 1
3 David 2
4 Michael 2
5 Hannah 4

위의 테이블은 직원과 관리자 간의 계층 구조를 나타냅니다. John은 최상위 관리자이고, Jane은 John의 관리자입니다. David와 Michael은 Jane의 관리자이며, Hannah은 Michael의 관리자입니다.

SELECT LEVEL, EMPLOYEE_NAME, MANAGER_ID FROM employees CONNECT BY LEVEL <= 3 START WITH MANAGER_ID IS NULL;

위의 예제 쿼리는 LEVEL이 3 이하인 모든 직원과 관리자를 검색합니다. 결과는 다음과 같습니다.

LEVEL EMPLOYEE_NAME MANAGER_ID
1 John -
2 Jane 1
2 David 2
2 Michael 2
3 Hannah 4

위의 예제에서는 LEVEL을 사용하여 출력되는 레벨을 제한했습니다. START WITH 절은 계층 구조의 시작 노드를 지정하며, MANAGER_ID가 NULL인 직원을 시작 노드로 지정했습니다.

 

CONNECT BY LEVEL은 계층 구조 데이터를 쿼리하는 데 유용한 오라클의 기능입니다. 이 문서에서는 CONNECT BY LEVEL의 기본 사용 방법과 예제를 제공했습니다. 이를 통해 오라클에서 계층 구조 데이터를 쿼리하는 데 도움이 되었기를 바랍니다.


반응형