Sql递归查询读取分层数据

时间:2014-09-02 16:39:28

标签: sql oracle recursion db2

我正在尝试使用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

2 个答案:

答案 0 :(得分:0)

这应该可以解决问题:

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

答案 1 :(得分:0)

这样做了:

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

感谢#Bulat& #AngocA,指针