[관련] 개념 설명
https://rise-up.tistory.com/719
계층형 쿼리(Hierarchical Query) 동작순서 + 설명
SQLD 자격검정 실전문제 P95/89
1.START WITH 라인을 먼저 뽑아냄
→ 001 홍길동,005이병헌
2.ORDERBY절
1번에서 뽑아낸 걸 오더바이절 조건대로 다시 정렬
3.CONNECT BY PRIOR
이전(PRIOR) 사원번호가 매니저사원번호인 ROW(행)을 찾아라
사원번호 = 매니저번호 조건에서 이전 사원번호가 001 홍길동이었으므로, 매니저사원번호가 001인 것들을 추려냄
4.AND 입사일자 BETWEEN ‘2013-01-01’ AND ‘2013-12-31’
입사일자 날짜 조건을 줘서 한번 걸러내므로 강감찬 탈락
003 이순신, 004 이민정만 추가
5.ORDER SIBLINGS BY
사원번호로 정렬
001 003 004 005 정렬이 맞으므로 순서 변화X
6.여기까지해서 또 계층 내려갈게 있는지 확인하려면, 매니저사원번호가 003,004인게 있는지 봐야한다
없으므로 내려갈 계층 더 없음. 이 계층은 여기서 끝
7.CONNECT BY PRIOR 사원번호 = 매니저사원번호
005 이병헌에서 매니저사원번호가 005인 ROW(행)을 찾아야한다
006,007,008이 존재함
8. AND 입사일자 BETWEEN ‘2013-01-01’ AND ‘2013-12-31’
AND의 입사일자 조건에 006,007,008 전부안맞아서 추가되는거 없음
9.결과값 도출
※만약 여기서 DESC로 정렬하고 싶으면 결과는?
DESC로 정렬하면 레벨1부터 정렬을 다시 해줘야하니 005가 맨 앞
다음 레벨2인 004가 003 위로가게됨
자료출처
https://www.youtube.com/watch?v=boNut__USIU&list=PLyQR2NzLKOCZU_jjLAdebyx9oE9dvvsrE&index=9
https://www.youtube.com/watch?v=U4MlOLK2E9M&list=PLyQR2NzLKOCZU_jjLAdebyx9oE9dvvsrE&index=10
https://yunamom.tistory.com/269?category=1006373#answer2
'SQL > Oracle' 카테고리의 다른 글
[SQL][Oracle] 서브쿼리로 조건 VS WHERE로 조건 차이는? (0) | 2022.10.06 |
---|---|
[SQL][Oracle] JOIN에 AND조건과 JOIN+WHERE절에 AND조건 어떻게 다를까? (1) | 2022.10.05 |
[SQL][Oracle] 계층형 질의(계층형 쿼리, Hierarchical Query) (1) | 2022.08.25 |
[SQL][Oracle] SELECT, DISTINCT, 별칭, 리터럴, 비교연산자 (0) | 2022.03.12 |
[SQL][Oracle] ESCAPE 식별자, IS NULL, IN, 연결연산자 || (0) | 2022.03.12 |