关于菜单的一条T-sql

ran丶 2015-06-23 11:31:24
你好,现在要求如下,菜单Menu表
查询出来数据
父级一行,下面全是子集,
即:
父级
子集
子集
父级
子集
子集
整个Menu
...全文
71 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
中国风 2015-06-24
  • 打赏
  • 举报
回复
改改加上空格和CAST(b.ord
;WITH BTree
AS
(
SELECT *,ord=CAST(RIGHT(10000+ROW_NUMBER()OVER(ORDER BY ID),4) AS VARCHAR(50)),lev=0 FROM Menu WHERE ParentID=0--父级=0
UNION ALL
SELECT a.*,ord=CAST(b.ord+RIGHT(10000+ROW_NUMBER()OVER(PARTITION BY a.ParentID ORDER BY a.ID),4) AS VARCHAR(50)),lev=b.lev+1 FROM Menu AS a INNER JOIN BTree AS b ON a.ParentID=b.ID
)
SELECT ID,ParendID,SPACE(lev)+Name FROM BTree ORDER BY ord
中国风 2015-06-24
  • 打赏
  • 举报
回复
生成一列用于排序ord
;WITH BTree
AS
(
SELECT *,ord=CAST(RIGHT(10000+ROW_NUMBER()OVER(ORDER BY ID),4) AS VARCHAR(50)) FROM Menu WHERE ParentID=0--父级=0
UNION ALL
SELECT a.*,ord=CAST(a.ord+RIGHT(10000+ROW_NUMBER()OVER(PARTITION BY a.ParentID ORDER BY ID),4) AS VARCHAR(50)) FROM Menu AS a INNER JOIN BTree AS b ON a.ParentID=b.ID
)
SELECT * FROM BTree ORDER BY ord
shoppo0505 2015-06-23
  • 打赏
  • 举报
回复
Sql没办法显示这种树结构,只能显示相关信息,树结构要在程序用实现。 没给出表格结构,帮不了你。

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧