Oracle中經過一條sql遍歷樹形結構

Oracle 針對樹形結構的數據,輸入一個根節點,查詢出他的全部子節點或者父節點,spa

能夠經過  Start with。(根節點條件)Connect by prior (子節點條件);其中用PRIOR表示上一條記錄,好比 CONNECT BY PRIOR org_id = parent_id就是說上一條記錄的org_id 是本條記錄的parent_id,即本記錄的父親是上一條記錄。這裏所說的上一條記錄便是由根節點查出的記錄,這樣就說明,下面要查找的記錄是parent_id=根節點的org_id ,而後根據遞歸,再以查出的子節點做爲下一輪的根節點,查詢,知道葉節點爲止。根節點條件能夠放寬,以便查出多個根節點,也就是說同時查找多棵樹code

例如:遞歸

select * from organization_ org Start with org.organizationid = 25909 Connect by prior org.organizationid=org.parentorganizationid order by org.organizationid;

這條語句輸出的結果是it

1 25909 10202 16421 /16421/25909/ 虹口區 
2 25999 10202 25909 /16421/25909/25999/ 歐陽路街道 
3 42247 10202 25909 /16421/25909/42247/ 涼城新村街道 io

以25909爲根節點,自頂向下,查出全部子節點select

 

select * from organization_ t Start with t.organizationid = 25909 Connect by prior t.parentorganizationid=t.organizationid;

這條語句輸出的結果是數據

1 25909 10202 16421 /16421/25909/ 虹口區 
2 16421 10202 0 /16421/ 上海市 查詢

以25909爲根節點,自底向上,查出全部父節點co

相關文章
相關標籤/搜索