時(shí)間:2015-06-28 00:00:00 來源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評(píng)論(4)
表結(jié)構(gòu) DEPTID | PAREDEPTID | NAME |
NUMBER | NUMBER | CHAR (40 Byte) |
部門id | 父部門id(所屬部門id) | 部門名稱 |
通過子節(jié)點(diǎn)向根節(jié)點(diǎn)追朔.
Sql代碼
select * from persons.dept start with deptid=76 connect by prior paredeptid=deptid
通過根節(jié)點(diǎn)遍歷子節(jié)點(diǎn).
Sql代碼
select * from persons.dept start with paredeptid=0 connect by prior deptid=paredeptid
可通過level 關(guān)鍵字查詢所在層次.
Sql代碼
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í): 通過子節(jié)點(diǎn)獲得頂節(jié)點(diǎn)
Sql代碼
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
關(guān)鍵詞標(biāo)簽:oracle,遞歸查詢
相關(guān)閱讀
熱門文章 Oracle中使用alter table來增加,刪除,修改列的語法 oracle中使用SQL語句修改字段類型-oracle修改SQL語句案例 誤刪Oracle數(shù)據(jù)庫實(shí)例的控制文件 為UNIX服務(wù)器設(shè)置Oracle全文檢索
人氣排行 oracle中使用SQL語句修改字段類型-oracle修改SQL語句案例 Oracle中使用alter table來增加,刪除,修改列的語法 ORACLE SQL 判斷字符串是否為數(shù)字的語句 ORACLE和SQL語法區(qū)別歸納(1) oracle grant 授權(quán)語句 ORACLE修改IP地址后如何能夠使用 如何加速Oracle大批量數(shù)據(jù)處理 Oracle刪除表的幾種方法