oracle中的遞迴sql查詢 connect by prior實現遞迴

dotaddjj發表於2011-07-22

oracle中的遞迴sql查詢,connect by prior實現遞迴
可以使用start with...connect by子句遞迴查詢一般用於一個表維護樹形結構的應用
table的具體column
a b
1 0
2 1
3 1
4 2
5 3
如果想查詢a=2及其下面的的所有資料,則:
select a,b from table start with a=2 connect by prior a=b
a b

2 1

4 2
其中也就是把a=2這條資料當做一個根目錄開始遞迴查詢。
其中的connect by prior a=b中靠近prior的a則表示a是父節點,在另一側表示子節點。
接著找b能跟上一個父節點a相等的值也就是b=2的值,找到後再次記錄當下的節點的a=4,併成為下一個查詢的父節點的值,也就是下次查詢要查詢b=4的值,
繼續迴圈下去直到下一個b的值無法滿足上一節點a的值時結束了遞迴的查詢。

[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25362835/viewspace-1052895/,如需轉載,請註明出處,否則將追究法律責任。

相關文章