22,210
社区成员
发帖
与我相关
我的任务
分享
;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
;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