2012-12-27
[ORACLE] CONNECT BY PRIOR 한방정리
WITH A AS(
SELECT 'A' AS CODE, '' AS P_CODE , '인사팀' AS TEAM_NAME FROM DUAL
UNION ALL
SELECT 'B' AS CODE, '' AS P_CODE , '관리팀' AS TEAM_NAME FROM DUAL
UNION ALL
SELECT 'C' AS CODE, '' AS P_CODE , '구매팀' AS TEAM_NAME FROM DUAL
UNION ALL
SELECT 'D' AS CODE, 'A' AS P_CODE , '인사파트' AS TEAM_NAME FROM DUAL
UNION ALL
SELECT 'E' AS CODE, 'A' AS P_CODE , '총무파트' AS TEAM_NAME FROM DUAL
UNION ALL
SELECT 'F' AS CODE, 'B' AS P_CODE , '관리파트' AS TEAM_NAME FROM DUAL
UNION ALL
SELECT 'G' AS CODE, 'B' AS P_CODE , '경리파트' AS TEAM_NAME FROM DUAL
UNION ALL
SELECT 'J' AS CODE, 'D' AS P_CODE , '천과장' AS TEAM_NAME FROM DUAL
UNION ALL
SELECT 'K' AS CODE, 'D' AS P_CODE , '이대리' AS TEAM_NAME FROM DUAL
UNION ALL
SELECT 'L' AS CODE, 'D' AS P_CODE , '윤주임' AS TEAM_NAME FROM DUAL
UNION ALL
SELECT 'M' AS CODE, 'E' AS P_CODE , '김과장' AS TEAM_NAME FROM DUAL
UNION ALL
SELECT 'N' AS CODE, 'E' AS P_CODE , '홍대리' AS TEAM_NAME FROM DUAL
UNION ALL
SELECT 'O' AS CODE, 'E' AS P_CODE , '안선임' AS TEAM_NAME FROM DUAL
UNION ALL
SELECT 'P' AS CODE, 'E' AS P_CODE , '문사원' AS TEAM_NAME FROM DUAL
UNION ALL
SELECT 'Q' AS CODE, 'F' AS P_CODE , '오과장' AS TEAM_NAME FROM DUAL
UNION ALL
SELECT 'R' AS CODE, 'F' AS P_CODE , '도사원' AS TEAM_NAME FROM DUAL
UNION ALL
SELECT 'S' AS CODE, 'G' AS P_CODE , '서부장' AS TEAM_NAME FROM DUAL
UNION ALL
SELECT 'T' AS CODE, 'G' AS P_CODE , '허대리' AS TEAM_NAME FROM DUAL
UNION ALL
SELECT 'U' AS CODE, 'G' AS P_CODE , '전주임' AS TEAM_NAME FROM DUAL
UNION ALL
SELECT 'V' AS CODE, 'C' AS P_CODE , '고상무' AS TEAM_NAME FROM DUAL
)
SELECT LEVEL, CODE,P_CODE,LPAD(' ', 8 * (LEVEL-1))||TEAM_NAME
FROM A
START WITH P_CODE IS NULL
CONNECT BY PRIOR CODE = P_CODE
;
***** ORDER BY & ORDER SIBLINGS BY
- ORDER BY : 통으로 정렬
- ORDER SIBLINGS BY : 계층별로 정렬
피드 구독하기:
댓글 (Atom)
댓글 없음:
댓글 쓰기