SQL排成树状结构
16lz
2021-01-22
ModuleIDModuleNameParentID
10 系统配置0
11 模块管理10
12 添加模块11
14 模块列表11
15 角色管理10
16 添加角色15
17 角色列表15
25 用户管理0
26 添加用户25
27 用户列表25
28 权限管理10
怎么排成树状的结构?
ModuleIDModuleNameParentID
10 系统配置0
11 模块管理10
12 添加模块11
14 模块列表11
15 角色管理10
16 添加角色15
17 角色列表15
28 权限管理10
25 用户管理0
26 添加用户25
27 用户列表25
想不出什么好的办法
10 系统配置0
11 模块管理10
12 添加模块11
14 模块列表11
15 角色管理10
16 添加角色15
17 角色列表15
25 用户管理0
26 添加用户25
27 用户列表25
28 权限管理10
怎么排成树状的结构?
ModuleIDModuleNameParentID
10 系统配置0
11 模块管理10
12 添加模块11
14 模块列表11
15 角色管理10
16 添加角色15
17 角色列表15
28 权限管理10
25 用户管理0
26 添加用户25
27 用户列表25
9 个解决方案
#1
想不出什么好的办法
--CREATETABLEtest(ModuleIDINT,ModuleNameNVARCHAR(10),ParentIDint)
--INSERTINTOtest
--SELECT10, '系统配置',0
--UNIONALLSELECT11, '模块管理',10
--UNIONALLSELECT12, '添加模块',11
--UNIONALLSELECT14, '模块列表',11
--UNIONALLSELECT15, '角色管理',10
--UNIONALLSELECT16, '添加角色',15
--UNIONALLSELECT17, '角色列表',15
--UNIONALLSELECT25, '用户管理',0
--UNIONALLSELECT26, '添加用户',25
--UNIONALLSELECT27, '用户列表',25
--UNIONALLSELECT28, '权限管理',10
withtAS(SELECTROW_NUMBER()OVER(ORDERBYmoduleid)id,*
FROMtest
WHEREParentID=0
UNIONALL
SELECTt.id,b.moduleid,b.modulename,b.parentid
FROMtINNERJOINtestbONt.ModuleID=b.ParentID)
SELECTModuleID,ModuleName,ParentIDFROMt
ORDERBYid,moduleid,parentid
/*
ModuleIDModuleNameParentID
--------------------------------
10系统配置0
11模块管理10
12添加模块11
14模块列表11
15角色管理10
16添加角色15
17角色列表15
28权限管理10
25用户管理0
26添加用户25
27用户列表25
(11行受影响)
*/
更多相关文章
- Android模块化开发探索
- Android功能模块化之网络连接状态判断
- 基于Android6.0的RIL底层模块分析
- 在android中使用webrtc的噪声抑制模块
- 【Android】策略模式封装百度地图路线规划模块
- 我心依旧之Android Camera模块FW/HAL3探学序
- OSGi 学习之路(4) - osgi的模块化 java在模块化的局限性
- Tomcat version 7.0仅支持J2EE 1.2、1.3、1.4和Java EE 5和6 Web
- 《Java 应用架构设计 模块化与OSGI》 读书笔记一