티스토리 뷰

Programming/SQL

[Oracle] 계층형 질의 CONNECT_BY_PATH 예제

감성적인 개발자 2022. 7. 7. 22:52

SYS_CONNECT_BY_PATH를 이용하면 CONNECT BY를 통해 가져온 값을 마치 루트노드로 부터 경로를 표시하는 것과 같이 표현한다. (이전 예제 참조)

 

SELECT ename
     , SYS_CONNECT_BY_PATH(ename, '/') as PATH
FROM EMP
START WITH ename='KING'
CONNECT BY PRIOR empno = mgr;

LTRIM을 이용해 앞에 출력되는 '/'를 제거하고 출력할 수 있다.

LTRIM(SYS_CONNECT_BY_PATH(ename, '/'), '/') as PATH

이전 예제와 함께 활용하면 노드간의 계층도를 시각적으로 표현 할 수도 있다.

RPAD(' ', (level-1)*3) || LTRIM(SYS_CONNECT_BY_PATH(ename, '/'), '/') as PATH

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함