用于读取分层数据的Sql递归查询



我正试图想出一个SQL查询来读取递归数据,如下所示:

ParentId    ChildId
    1          2
    2          3
    3          4
    4          5
    4          6
    8          9

如果提供了ParentId,那么查询应该以递归方式返回所有ChildId

示例:parentId =1result = {2, 3, 4, 5, 6}

我发现connect_by_rootconnect by prior可能是我应该使用的。但我没能把它做好。

数据库:Oracle和Db2

这应该可以做到:

SELECT ChildId, ParentId, LEVEL
   FROM myTable
   CONNECT BY PRIOR ChildId = ParentId;

这样做了:

   SELECT childid
   FROM btab
   START WITH parentId = 1
   CONNECT BY PRIOR  childId = parentId;

感谢#Bulat&AngocA,用于指针

最新更新