Oracle表中實現遞迴查詢樹形結構

2021-07-24 18:22:29 字數 674 閱讀 1999

若將乙個樹狀結構儲存在一張表裡,需要在表中存入兩個欄位id和parentid,表示每一條記錄的parent是誰。

table: treetable

idparentid

欄位3……

1nulla……

21b……

32d……

oracle中可以使用

select ……from……

start with(開始的節點)……connect by ……prior(表示上一條記錄)…… (order siblings by levels)

子句實現遞迴查詢樹形結構。

1.從根節點遍歷子節點.:(一整棵樹)

select * from treetable start with id=1 connect by prior id=parentid (prior 表示上一條記錄)

2.從乙個葉子追溯到根節點:(樹的一枝)

select * from treetable start with id=3 connect by prior parentid=id (prior 表示上一條記錄)

3.可通過level 關鍵字查詢所在層次.

select *,level from treetable start with id=1 connect by prior id=parentid (prior 表示上一條記錄)

oracle 遞迴查詢 樹查詢

通過根節點遍歷子節點.select level,a.deptproperty,a.from sys org a start with a.parentid 0 connect by prior a.org objid a.parentid 通過子節點獲取頂節點 select first value ...

oracle樹遞迴查詢

通過子節點向根節點追朔.deptid paredeptid name number number char 40 byte 部門id 父部門id 所屬部門id 部門名稱 sql 通過子節點遍歷根節點.select frompersons.deptstartwithdeptid 76connect b...

Oracle實現遞迴查詢

有如下表tree 現在要遞迴查詢冶煉 id 2 的所有父節點和子節點 select from tree start with id 2 connect by prior pid id 遞迴查詢父節點 union select from tree start with id 2 connect by ...