2014-09-02 55 views
1

我想拿出一個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

+0

這將是一個很好的開始 - http://docs.oracle.com/cd/B19306_01/server.102/b14200/queries00 3.htm – Bulat 2014-09-02 17:01:09

+0

關於如何在DB2中使用SQL進行層次結構,有一個很好的Webmin:http://www.idug-db2.com?commid=105565 – AngocA 2014-09-02 18:06:36

回答

0

這做到了:

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

由於#Bulat & #AngocA,爲指針

0

這應該做的伎倆:

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

Nope doesnot !!! – Nohsib 2014-09-02 18:53:47

+1

「沒有不確定」究竟是什麼?更多細節將有所幫助 – Bulat 2014-09-02 20:59:21

+0

它需要「開始」 – Nohsib 2014-09-10 16:25:17