참고1. WITH절과 서브쿼리의 차이점
예시 => UNION ALL
https://jieeeeez.tistory.com/100
[Oracle] 임시테이블 만들기 / WITH절
WITH절 WITH 절은 RDBMS계의 3대장인 Oracle, MySQL, MS-SQL 에서 기본적으로 지원된다. 오라클에서는 오라클9 이후 버전부터 사용이 가능하다. WITH절을 이용하여 미리 이름을 부여해서 Query Block을 만든다.
jieeeeez.tistory.com
참고2. 성능 관련
https://schatz37.tistory.com/46
[SQL] with 절을 효율적으로 사용하기
요즘 회사에서 '어떻게 하면 보다 효율적인 sql을 작성할 수 있을까?' 라는 부분에 굉장히 많이 고민하고 있는데요. 이번 포스팅에서는 공부가 필요하다고 생각되는 with절에 대해서 포스팅하려
schatz37.tistory.com
참고3. START WITH ~ CONNECT BY, LEVEL
[Oracle] 계층형 쿼리 쉬운 정리(START WITH CONNECT BY)
오라클 사용 시 계층형 쿼리를 종종 사용하게 된다. LEVEL 어쩌구 CONNECT BY 어쩌구.. 처음 마주하면 굉장히 복잡하고 어려워보인다..... 몰라서 검색해봐도 무슨 말인지 이해하기 어려운 설명들이
grandma-coding.tistory.com
SELECT LEVEL, A.* FROM TB_DIVISION A
START WITH HIGH_DVSID IS NULL
CONNECT BY PRIOR DIVISIONID = HIGH_DVSID;
HIGH_DVSID가 NULL인 것부터 시작.
HIGH_DVSID가 NULL인 행의 DIVISIONID와 HIGH_DVSID가 일치하는 행을 찾아서 이동
일치하는 행이 있다면 그 행의 DIVISIONID와 HIGH_DVSID가 일치하는 행을 찾아서 이동
여러개라면 처음 일치하는 행 출력 후 계속 하위 요소 출력...
출력 중에 일치하는 값이 사라지면 다시 원래 위치로 와서 또 다시 찾음
모두 일치하는 행을 찾지 못하면 출력 끝
(예시를 보는 것이 빠름)