写一个关于显示路径的sql语句(导航菜单动态显示)

WITH RecursiveMenu AS (
    SELECT *, CAST(MenuName AS VARCHAR(MAX)) AS AllChildren
    FROM [dbo].[MenuManagement]
    WHERE PId = 0 -- 假设顶级菜单的PId值
    
    UNION ALL
    
    SELECT m.*, CAST(r.AllChildren + ' → ' + m.MenuName AS VARCHAR(MAX))
    FROM [dbo].[MenuManagement] m
    INNER JOIN RecursiveMenu r ON m.PId = r.MenuId
)
SELECT *
FROM RecursiveMenu;
需要更改的点:
1,MenuName是自己的菜单名,[dbo].[MenuManagement]是表名。
2,PId是父级Id,0是顶级Id的PId值。
3,MenuId是正常的主键编号

4.要有一个pid=0的值

 

posted @ 2023-06-27 10:15  想睡觉的小坤  阅读(45)  评论(0)    收藏  举报