SQL中根据特定节点,获取其所有子级节点、父级节点

1. 根据特定节点,获取其下属的所有子级节点

WITH temp AS
(
    SELECT * FROM [表名] WHERE Id=9999 --主键Id=9999
    UNION ALL
    SELECT t.* FROM temp, [表名] AS t WHERE temp.Id=t.ParentId 
    --子级Id=父级Id
)
SELECT * FROM temp; 

2. 根据特定节点,获取其所有父级节点

WITH temp AS
(
    SELECT * FROM [表名] WHERE Id=9999 --主键Id=9999
    UNION ALL
    SELECT t.* FROM temp, [表名] AS t WHERE temp.ParentId=t.Id 
    --父级Id=子级Id
)
SELECT * FROM temp;
posted @ 2023-04-25 17:39  宋佳莉  阅读(569)  评论(0)    收藏  举报