MS-SQL

계층구조 쿼리 (CTE)

설레여라 2015. 10. 20. 23:04


SELECT * FROM MENUS;


WITH TREE_MENUS AS

(

SELECT 

PARENT_CD

, CODE

, NAME

, URL

, CONVERT(VARCHAR(255), CODE) AS SORT

, CONVERT(NVARCHAR(255), NAME) AS COL

, URL

FROM

MENUS

WHERE

PARENT_CD = '0'


UNION ALL


SELECT

A.PARENT_CD

, A.CODE

, A.NAME

, A.URL

, CONVERT(VARCHAR(255), B.CODE + ' > ' + A.CODE) AS SORT

, CONVERT(NVARCHAR(255), B.NAME + ' > ' + A.NAME) AS COL

, A.URL

FROM

MENUS A

INNER JOIN

TREE_MENUS B

ON A.PARENT_CD =  B.CODE

)

SELECT * FROM TREE_MENUS ORDER BY CODE




그외 비슷하지만 다른 방법

http://kokun.tistory.com/entry/MSSQL-WITH-%EC%A0%88%EA%B3%BC-CTE-2