久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長(zhǎng)資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

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

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

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

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

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

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

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

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

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

      條件3:是過(guò)濾條件,用于對(duì)返回的記錄進(jìn)行過(guò)濾。

      注意:

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

      2,START WITH… CONNECT BY PRIOR…的作用,簡(jiǎn)單來(lái)說(shuō),就是將一個(gè)樹狀結(jié)構(gòu)存儲(chǔ)在一張表里。

      通過(guò)子節(jié)點(diǎn)向根節(jié)點(diǎn)追朔.

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

      通過(guò)根節(jié)點(diǎn)遍歷子節(jié)點(diǎn)(不包含根節(jié)點(diǎn)).

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

      通過(guò)根節(jié)點(diǎn)遍歷子節(jié)點(diǎn)(包含根節(jié)點(diǎn)).

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

      可通過(guò)level 關(guān)鍵字查詢所在層次.

      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只能查詢到符合條件的起始行,并不進(jìn)行遞歸查詢;

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

      練習(xí): 通過(guò)子節(jié)點(diǎn)獲得頂節(jié)點(diǎn)

      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號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)