티스토리 뷰

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/12   »
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
글 보관함