[SQLD] 계층형 쿼리
Database/SQL
2024. 5. 15. 18:15
계층형 쿼리의 내장 함수
1. LEVEL
2. CONNECT_BY_ISLEAF
3. CONNECT_BY_ISCYCLE
4. SYS_CONNECT_BY_PATH
5. CONNECT_BY_ROOT
6. NOCYCLE
START WITH ~ CONNECT BY
SELECT * FROM TABLE START WITH 컬럼 = 값 CONNECT BY 컬럼 = PRIOR 컬럼;
1. START WITH 컬럼 = 값
위 컬럼 = 값을 만족하는 레코드에서 시작
2. CONNECT BY 컬럼 = PRIOR 컬럼;
위의 레코드에서 PRIOR 컬럼의 값이 부모가 되어 자식을 찾아 다음 레코드를 연결짓는다.
CONNECT BY 컬럼 PRIOR 자식 컬럼 = 부모 컬럼 : 순방향
CONNECT BY 컬럼 PRIOR 부모 컬럼 = 자식 컬럼 : 역방향
*계층형 쿼리 순서 나열 시
A
ㄴ B
l ㄴ D
ㄴ C
인 경우에 나열하면 A B D C 순이다.
CONNECT BY 순으로 자식을 찾다보면 A B C D로 보이겠지만 계층으로 나누어야 해서 A B D C 순이 맞다
PRIOR 키워드는 CONNECT BY, SELECT, WEHERE 절에서 사용할 수 있다.
*질의 순서 : 계층 구조 작성 후, 조건 필터링(반대 순서가 아님!!!)
쿼리가 아래와 같을 경우 순서는...
WHERE 조건
START WITH ~
CONNECT BY ~
'Database > SQL' 카테고리의 다른 글
[SQLD] ALTER TABLE ~ (0) | 2024.05.15 |
---|---|
[SQLD] NULL 함수 (0) | 2024.05.15 |
[SQLD] 식별자 (0) | 2024.05.15 |
[SQLD] ERD 관계 (0) | 2024.05.14 |
[SQLD] 데이터 모델링 (0) | 2024.05.14 |
@서리★ :: Seory Dev
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!