DB/SQL

[SQL]계층형 쿼리(START WITH, CONNECT BY)

씩씩한 IT블로그 2020. 7. 11. 15:49
반응형
SELECT LPAD(' ',2*(LEVEL-1)) || item_name item_names, 
       item_id, 
       parent_id
FROM bom
START WITH parent_id is null
connect by prior item_id = parent_id; 

1. LPAD

공백을 만들어주기 위한 함수. 빈칸(' ')을 LEVEL만큼 왼쪽에 넣어줌으로서 들여쓰기시켜줌

2. start with (조건)

루트노드를 지정하는것. 조건을 만족하는 모든 행이 루트 노드가 된다.

3. connect by (조건)

prior (자식노드) = (부모노드) 로서 계층을 만들어 주는것

반응형