SqlServer-无限递归树状图结构设计和查询

时间:2023-03-08 16:02:17
SqlServer-无限递归树状图结构设计和查询

在现实生活中,公司的部门设计会涉及到很多子部门,然后子部门下面又存在子部门,形成类似判断的树状结构,比如说评论楼中楼的评论树状图,职位管理的树状图结构等等,实现类似的树状图数据结构是在开发中经常出现的。

一.数据库关系结构设计

在SqlSever中:我们设计部门表:Department,结构如下:
SqlServer-无限递归树状图结构设计和查询
添加测试数据如下:
SqlServer-无限递归树状图结构设计和查询
添加存储过程:
ALTER PROCEDURE [dbo].[pSelectDepartment]
@Id int
AS
BEGIN
    with cte as
    (
         as lvl from Department
        where Id = @Id
        union all
         from cte c inner join Department d
        on c.Id = d.Pid
    )
    select * from cte
END

SqlServer-无限递归树状图结构设计和查询
执行存储过程,现在查询的是Id=1即,总部下面的部门分布情况树状图