1. 계층형 쿼리란?
트리 형태의 구조로 이루어진 형태를 말한다. 예를 들면 회사 부서 또는 게시판 카테고리 등이 있다.
2. 계층형 쿼리 문법
SELECT *
FROM [테이블]
WHERE [조건]
START WITH [최상위 조건]
CONNECT BY [NOCYCLE][PRIOR 계층형 구조 조건]
3. 계층형 쿼리 예제
CREATE TABLE CATEGORY (
CATEGORY_ID NUMBER NOT NULL, -- 카테고리 ID
PARENT_CATEGORY_ID NUMBER, -- 상위 카테고리 ID
CATEGORY_NM VARCHAR2(100) NOT NULL, -- 카테고리이름
PRIMARY KEY (CATEGORY_ID) );
- 데이터 예제
4. 쿼리
SELECT CATEGORY_ID, PARENT_CATEGORY_ID , LPAD(' ' , 3 * (LEVEL-1)) || CATEGORY_NM "CATEGORY_NM", LEVEL
FROM CATEGORY
START WITH CATEGORY_ID IS 0 -- 시작조건
CONNECT BY PRIOR CATEGORY_ID = PARENT_CATEGORY_ID -- 연결조건
- START WITH : 계층형 구조에서 최상위 계층의 로우를 식별하는 조건을 작성하여 이 조건에 맞는 로우부터 시작해 계층형 구조를 만들어낸다.
- CONNECTION BY : 계층형 구조가 어떤 식으로 연결되는 지를 작성하는 부분이다.
PRIOR 이전이라는 의미로 해석하면 된다.
- level은 계층형 구조의 레벨값이다.
결과
'DataBase' 카테고리의 다른 글
MySQL Data truncated for column 해결 방법 (0) | 2021.11.02 |
---|---|
MySQL ORACLE HIVE 그룹별 문자열 묶기 LISTAGG GROUP_CONCAT collect_set (0) | 2021.10.28 |
댓글