이 쿼리의 핵심은 문법 이름보다 어디서 시작하고, 어떤 관계를 반복하며, 그 결과에 무슨 정보를 붙이는가입니다.
`manager_id IS NULL`인 CEO에서 시작한 뒤, 부모 `emp_id`와 자식 `manager_id`가 맞는 행으로 계속 확장합니다.
PRIOR emp_id = manager_id는 현재 부모 행의 키를 다음 자식 행의 부모 키와 맞추라는 뜻입니다.
그래서 계층을 한 단계씩 내려가며 전체 조직도를 펼칠 수 있습니다.
SELECT 절은 계층을 읽기 좋은 텍스트와 운영에 유용한 메타데이터로 바꿔 줍니다.
LPAD(... ) || name
LEVEL
SYS_CONNECT_BY_PATH(name, '/')
org_chart LEVEL path
CEO 1 /CEO
CFO 2 /CEO/CFO
CTO 2 /CEO/CTO
Dev A 3 /CEO/CTO/Dev A