MS-SQL
재귀 쿼리로 트리 목록 한줄에 출력 레벨1>레벨2>레벨3>
캡틴노랑이
2015. 7. 27. 09:49
반응형
트리형태로 구성된 데이터를 네비게이션처럼 계층 아래로 내려가면 현재 어떤 카테고리에서 어떤 카테고리로 이동했는지 보여줄 때 사용한다.
예)
level1
ㄴ level1-1
ㄴ level1-2
ㄴ level1-2-1
ㄴ level1-2-2
ㄴ level1-2-3
ㄴ level1-3
leve2
ㄴ level2-1
ㄴ level2-2
ㄴ level2-3
level1 > level1-2 > level1-2-3
테이블 설명
CodeName : 코드
HighCode : 상위 부모 코드
부서 계층
WITH tree_query
AS (
SELECT DEPT_CD
, UP_DEPT_CD
, DEPT_NM
, convert(varchar(255), DEPT_CD) sort
, convert(varchar(255), DEPT_NM) depth_fullname
FROM DEPT
WHERE UP_DEPT_CD = ''
UNION ALL
SELECT B.DEPT_CD
, B.UP_DEPT_CD
, B.DEPT_NM
, convert(varchar(255)
, convert(nvarchar,C.sort) + ' > ' + convert(varchar(255), B.DEPT_CD)) sort
, convert(varchar(255)
, convert(nvarchar,C.depth_fullname) + ' > ' + convert(varchar(255), B.DEPT_NM)) depth_fullname
FROM DEPT B
, tree_query C
WHERE B.UP_DEPT_CD = C.DEPT_CD
)
SELECT DEPT_CD
, UP_DEPT_CD
, DEPT_NM
, depth_fullname
FROM tree_query
ORDER BY SORT
반응형