2
在下面的例子甲骨文CONNECT BY遞歸孩子家長的查詢,包括自我引用
id parent_id
A A
B A
C B
select id, parent_id
from table
start with id = 'A'
connect by nocycle parent_id = prior id
我得到
A A
B A
C B
在我的數據庫中,我有幾百萬行的表中,並最終母公司深層次和廣泛的層次結構,我對所有的孩子都不感興趣。我可以派生出我感興趣的孩子。因此,我想在頭上打開查詢並將START WITH與兒童ID相提供。然後我想遞歸地輸出父節點,直到到達頂端。在我的情況下,頂部是id和parent_id相等的地方。這是我正在嘗試,但我無法讓它顯示頂級父。
select id, parent_id
from table
START WITH id = 'C'
CONNECT BY nocycle id = PRIOR parent_id
這給了我
C B
B A
它不輸出A A.是否有可能做到這一點?我希望做的不是將parent_id顯示爲輸出中的單獨列,而只是顯示與id相關的名稱。層次然後由訂單隱含。
輝煌。非常感謝你。顯然,我不太瞭解PRIOR表達式,但這會幫助我更好地理解它。 – 2014-10-18 15:17:53
@Ftaveras我冒昧地粘貼了整個工作遞歸查詢。 +1 – 2014-10-18 16:16:08