站長資訊網
最全最豐富的資訊網站

oracle怎樣遞歸查詢子節點

在oracle中,可以利用select語句遞歸查詢子節點,該語句的作用就是對表數據進行簡單的查詢,語法為“SELECT * FROM 表名 START WITH 條件1 CONNECT BY PRIOR 條件2 WHERE 條件3”。

oracle怎樣遞歸查詢子節點

本教程操作環境:Windows10系統、Oracle 11g版、Dell G3電腦。

oracle怎樣遞歸查詢子節點

語法結構

SELECT ... FROM    + 表名  START WITH + 條件1 CONNECT BY PRIOR + 條件2  WHERE  + 條件3

條件1:是根節點的限定語句,當然可以放寬限定條件,以取得多個根節點,也就是多棵樹;在連接關系中,除了可以使用列明外,還允許使用列表達式。START WITH 子句為可選項,用來標識哪個節點作為查找樹形結構的根節點。若該子句省略,則表示所有滿足查詢條件的行作為根節點。

條件2:是連接條件,其中用PRIOR表示上一條記錄,例如CONNECT BY PRIOR STUDENT_ID = GRADE_ID,意思就是上一條記錄的STUDENT_ID是本條記錄的GRADE_ID,即本記錄的父親是上一條記錄。CONNECT BY子句說明每行數據將是按照層次順序檢索,并規定將表中的數據連入樹形結構的關系中。PRIOR運算符必須放置在連接關系的2列中某一個的前面。對于節點間的父子關系,PRIOR運算符在一側表示父節點,在另一側表示子節點,從而確定查找樹結構的順序是自頂向下,還是自底向上。

條件3:是過濾條件,用于對返回的記錄進行過濾。

注意:

1,CONNECT BY PRIOR是結構化查詢中用到的;

2,START WITH… CONNECT BY PRIOR…的作用,簡單來說,就是將一個樹狀結構存儲在一張表里。

通過子節點向根節點追朔.

select * from persons.dept start with deptid=76 connect by prior paredeptid=deptid

通過根節點遍歷子節點(不包含根節點).

select * from persons.dept start with paredeptid=0 connect by prior deptid=paredeptid

通過根節點遍歷子節點(包含根節點).

select * from persons.dept start with deptid=0 connect by prior deptid=paredeptid

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

select a.*,level from persons.dept a start with paredeptid=0 connect by prior deptid=paredeptid

備注:

start with …connect by 的用法, start with 后面所跟的就是就是遞歸的種子。

遞歸的種子也就是遞歸開始的地方 connect by 后面的"prior" 如果缺省:則只能查詢到符合條件的起始行,并不進行遞歸查詢;

connect by prior 后面所放的字段是有關系的,它指明了查詢的方向。

練習: 通過子節點獲得頂節點

select FIRST_VALUE(deptid) OVER (ORDER BY LEVEL DESC ROWS UNBOUNDED PRECEDING) AS firstdeptid from persons.dept start with deptid=76 connect by prior paredeptid=deptid

表結構

DEPTID PAREDEPTID NAME NUMBER NUMBER CHAR (40 Byte)

部門id 父部門id(所屬部門id) 部門名稱

推薦教程:《Oracle視頻教程》

贊(0)
分享到: 更多 (0)
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
久久精品福利视频| 亚洲第一永久AV网站久久精品男人的天堂AV| 国产成人高清精品免费软件| 成人精品一区二区户外勾搭野战| 无码少妇精品一区二区免费动态| 亚洲永久精品ww47| 国产高清在线精品一区小说| 日韩视频在线免费观看| 国产麻豆精品在线观看| 亚洲AV综合永久无码精品天堂 | 网友自拍区视频精品| 久久99国产综合精品女同| 久久精品视频99精品视频150| 99免费精品视频| 国产一区二区精品尤物| 国产精品永久久久久久久久久| 亚洲中文字幕无码久久精品1 | 四虎精品久久久久影院| 四色在线精品免费观看| 内射精品无码中文字幕| 久久99国产精品久久99| 久久久精品国产Sm最大网站| 亚洲综合精品网站| 亚洲精品456播放| 九色国产在视频线精品视频| 在线视频一区二区日韩国产| 日韩精品一区二区三区中文| 日韩一本之道一区中文字幕| vvvv99日韩精品亚洲| 亚洲日韩国产一区二区三区| 国产成人久久精品麻豆二区 | 亚洲日韩一区精品射精| 无码日韩精品一区二区免费暖暖 | 日韩特级黄色毛片| 依依成人精品视频在线观看 | 91久久婷婷国产综合精品青草| AV无码精品一区二区三区宅噜噜| 中文字幕精品在线观看| 国产午夜精品一区理论片飘花| 精品国产美女福利到在线不卡| 久久国产成人精品麻豆|