MSSQL

MS-SQL 2005 계층구조, Tree

Sunny's 2012. 3. 19. 10:04

With Tree_Org(self_cd, parent_cd, name, org_level, sort_col)

AS

(

Select self_cd, parent_cd, name, 1 As Org_Level, Convert(varchar(255), self_cd)

From tbl_relation

Where self_cd = '01'

Union All

Select a.self_cd, a.parent_cd, a.name, b.org_level + 1 As org_level, Convert(varchar(255), sort_col + ' ' + a.self_cd)

From tbl_relation A

Inner Join Tree_Org B On A.parent_cd = B.self_cd

)

Select self_cd, parent_cd, name, org_level, sort_col

From Tree_Org

order by sort_col

오라클에서는 Connect by를 써서 나타내지만 Mssql에서는 2005부터 CTE로 기능을 제공한다.

붉게 표시된 부분은 특정 컬럼을 연결하여 마지막 조회시 연결된 컬럼으로 sort하게되며 계층형태로 조회된다.

출처 : http://blog.naver.com/PostView.nhn?blogId=kwonhjae&logNo=30039692894

[출처] MS-SQL 2005 계층구조|작성자 Gabriel