728x90
반응형
728x170
■ CTE 재귀 호출을 사용하는 방법을 보여준다.
▶ 예제 코드 (SQL)
WITH CTE (ParentID, ID, [Level], [Path])
AS
(
SELECT
A.ParentID AS ParentID,
A.ID AS ID ,
1 AS [Level] ,
CONVERT(NVARCHAR(MAX), '/' + A.Name) AS [Path]
FROM Menu AS A WITH(NOLOCK)
WHERE A.ParentID = -1
UNION ALL
SELECT
A.ParentID AS ParentID,
A.ID AS ID ,
B.[Level] + 1 AS [Level] ,
CONVERT(NVARCHAR(MAX), B.[Path] + '/' + A.Name) AS [Path]
FROM Menu AS A WITH(NOLOCK)
JOIN CTE AS B ON B.ID = A.ParentID
)
SELECT * FROM CTE AS A ORDER BY A.[Path];
728x90
반응형
그리드형(광고전용)
'Database > SQLServer' 카테고리의 다른 글
[DATABASE/SQLSERVER] HASHBYTES 함수 : 해시값 구하기 (0) | 2014.12.06 |
---|---|
[DATABASE/SQLSERVER] 실행된 저장 프로시저 상태 조회하기 (0) | 2014.12.06 |
[DATABASE/SQLSERVER] 저장 프로시저 리스트 조회하기 (0) | 2014.12.06 |
[DATABASE/SQLSERVER] 날짜 포맷 사용하기 (0) | 2014.12.06 |
[DATABASE/SQLSERVER] OBJECT_ID 함수 사용하기 (0) | 2014.12.06 |
[DATABASE/SQLSERVER] 날짜 포맷 사용하기 (0) | 2014.12.06 |
[DATABASE/SQLSERVER] 마지막 추가 데이터 Identity 값 조회하기 (0) | 2014.12.06 |
[DATABASE/SQLSERVER] 에러 발생시 에러 번호 조회하기 (0) | 2014.12.06 |
[DATABASE/SQLSERVER] 쿼리 실행시 영향을 받은 행 수 조회하기 (0) | 2014.12.06 |
[DATABASE/SQLSERVER] 현재 사용중인 트랜잭션 수를 조회하기 (0) | 2014.12.06 |
댓글을 달아 주세요