亚洲最大看欧美片,亚洲图揄拍自拍另类图片,欧美精品v国产精品v呦,日本在线精品视频免费

  • 站長資訊網(wǎng)
    最全最豐富的資訊網(wǎng)站

    oracle怎樣遞歸查詢子節(jié)點

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

    oracle怎樣遞歸查詢子節(jié)點

    本教程操作環(huán)境:Windows10系統(tǒng)、Oracle 11g版、Dell G3電腦。

    oracle怎樣遞歸查詢子節(jié)點

    語法結(jié)構(gòu)

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

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

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

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

    注意:

    1,CONNECT BY PRIOR是結(jié)構(gòu)化查詢中用到的;

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

    通過子節(jié)點向根節(jié)點追朔.

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

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

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

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

    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" 如果缺?。簞t只能查詢到符合條件的起始行,并不進行遞歸查詢;

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

    練習: 通過子節(jié)點獲得頂節(jié)點

    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

    表結(jié)構(gòu)

    DEPTID PAREDEPTID NAME NUMBER NUMBER CHAR (40 Byte)

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

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

    贊(0)
    分享到: 更多 (0)
    網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號