日期:2014-05-17 浏览次数:20526 次
--CREATE TABLE test (ModuleID INT , ModuleName NVARCHAR(10),ParentID int )
--INSERT INTO test
-- SELECT 10, '系统配置' , 0
--UNION ALL SELECT 11, '模块管理' , 10
--UNION ALL SELECT 12, '添加模块' , 11
--UNION ALL SELECT 14, '模块列表' , 11
--UNION ALL SELECT 15, '角色管理' , 10
--UNION ALL SELECT 16, '添加角色' , 15
--UNION ALL SELECT 17, '角色列表' , 15
--UNION ALL SELECT 25, '用户管理' , 0
--UNION ALL SELECT 26, '添加用户' , 25
--UNION ALL SELECT 27, '用户列表' , 25
--UNION ALL SELECT 28, '权限管理', 10
with t AS (SELECT ROW_NUMBER() OVER(ORDER BY moduleid )id,*
FROM test
WHERE ParentID=0
UNION ALL
SELECT t.id,b.moduleid,b.modulename,b.parentid
FROM t INNER JOIN test b ON t.ModuleID=b.ParentID)
SELECT ModuleID ,ModuleName ,ParentID FROM t
ORDER BY id,moduleid,parentid
/*
ModuleID ModuleName ParentID
----------- ---------- -----------
10 系统配置 0
11 模块管理 10
12 添加模块 11
14 模块列表 11
15 角色管理 10
16 添加角色 15
17&