오라클에서 SQL의 WITH와 같은 역활하는 함수또는 방법은
부서명을 상위레벨부터 하위레벨까지 순차적으로 출력하되 동급 레벨은 좌측 정렬하고 레벨이 바뀔때 마다 부서명 앞에 ' --' 를 추가하여 들여쓰기가 되도록 한다.
부서레벨은 총 3레벨(0,1,2)로 구성되어 있으며 대표이사(0), 인사그룹(0), 인사팀(1), 재무팀(1),
인사파트(2), 교육파트(2), 총무파트(2)... 로 구동됨
[테이블 레이아웃]
[결과]는 다음과 같습니다.
대표이사
인사그룹
인사그룹>> 인사팀
인사그룹>> 인사팀>>인사파트
인사그룹>> 인사팀>>교육파트
인사그룹>> 인사팀>>총무파트
인사그룹>> 재무팀
인사그룹>> 재무팀>>재무파트
인사그룹>> 재무팀>>구매파트
출력되려면..
MS_SQL 2005에선 WIth 를 사용하면 금방인데 .. ORACLE에선 ..영 못찾겠네요.
질문의 글과 제시된 결과가 상이하군요...결과기준으로 작성 해 드리니 나머지는 알아서...;
데이터의 계층관계가 약간 모호합니다.
인사그룹이 대표이사 아래있는 것이 아니라면 위 결과처럼 나오려면 상위부서로 대표이사부서코드를 가진 조직이 없어야 합니다...참고하세요...;
SELECT SUBSTR(SYS_CONNECT_BY_PATH(deptname, '>>'), 3) AS 결과
FROM dept
START WITH 부서레벨 = 0
CONNECT BY PRIOR dept = pdept
ORDER SIBLINGS BY dept
;
흠...쓰고보니 오라클도 WITH는 들어있군요...^^;
오라클에 level 이란 함수가 있을겁니다..
한번 이용해 보심이....