부서명을 상위레벨부터 하위레벨까지 순차적으로 출력하되 동급 레벨은 좌측 정렬하고 레벨이 바뀔때 마다 부서명 앞에 ' --' 를 추가하여 들여쓰기가 되도록 한다.
부서레벨은 총 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 이란 함수가 있을겁니다..
한번 이용해 보심이....
'SQL > ORACLE함수' 카테고리의 다른 글
오라클 요일함수-주간 요일 찾기 (0) | 2015.11.20 |
---|---|
Oracle 오라클 trunc() 함수로 날짜 자르는법 방법 (0) | 2015.11.20 |
Oracle 오라클 SYSDATE(시스템시간=현재시간)을 년도만 보여주기 (0) | 2015.11.20 |
ROLLUP 사용법 (0) | 2015.10.08 |
오라클 CONNECT BY LEVEL 간단 설명 및 예제 (0) | 2014.08.08 |
오라클 NVL 함수 (0) | 2014.08.08 |
오라클 함수2 (0) | 2014.06.11 |
[Oracle_SQL/오라클] (with, replace)함수 동시 활용 (0) | 2014.06.11 |