Document
  

SQL Server 递归查询上级或下级组织数据

  • 查询下级(包括自身)

WITH TempTable AS (
SELECT ID, Name, ParentID FROM table WHERE ID in (25)
UNION ALL
SELECT a.ID,a.Name,a.ParentID
FROM TempTable
JOIN table a ON TempTable.ID = a.ParentID
) SELECT * FROM TempTable
  • 查询下级(不包括自身)

with cte as
(select * from table where ParentID=25 and IsDeleted=0
union all
select a.* from table a join cte b on a.ParentID=b.ID where a.IsDeleted=0)
select * from cte
  • 查询上级(不包括自身)

WITH OCTE AS
(
SELECT O.ID,O.ParentID,O.Name FROM table U LEFT JOIN table O ON U.ParentID=O.ID
WHERE U.ID=25
UNION ALL
SELECT O.ID,O.ParentID,O.Name FROM OCTE C INNER JOIN table O ON C.ParentID=O.ID
)
SELECT * FROM OCTE
  • 查询上级(包括自身)

WITH T
AS(
SELECT * FROM table WHERE Id=25
UNION ALL
SELECT a.*
FROM table a INNER JOIN T ON a.Id=T.ParentId
)
SELECT * FROM T
posted @   半个失忆人  阅读(1059)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
       
点击右上角即可分享
微信分享提示