ORACLE START WITH 語句的樹級結構例子
原創 轉載請註明出處
connect by 是結構化查詢中用到的,其基本語法是:
select ... from tablename start by cond1
connect by cond2
where cond3;
考慮如下語句
select *
from t_agency
where VALIDATE_STATUS = 'Y'
start with organ_id =1152
connect by parent_id = prior agency_id;
select parent_id,agency_id,organ_id from t_agency;
PARENT_ID AGENCY_ID ORGAN_ID
----------- ----------- ----------------------------------------
81 1
81 82 1152
82 84 1152006
83 85 1688
81 83 1688
59 1152
60 1152
60 61 1152
84 86 1152
圖1
第一步查詢會查詢出
SQL> select *
2 from t_agency
3 where VALIDATE_STATUS = 'Y'
4 and organ_id =1152
5 ;
會出現5行
AGENCY_ID PARENT_ID ORGAN_ID
----------- ----------- ----------------------------------------
82 81 1152
59 1152
60 1152
61 60 1152
86 84 1152
圖2
第二步透過connect by parent_id = prior agency_id;
進行向子及衍生。
然後條件變為parent_id in(82,59,60,61,86)
及查詢
SQL> select agency_id,parent_id,organ_id
2 from t_agency
3 where VALIDATE_STATUS = 'Y'
4 and parent_id in(82,59,60,61,86);
AGENCY_ID PARENT_ID ORGAN_ID
----------- ----------- ----------------------------------------
84 82 1152006
61 60 1152
得到2行,可以看出此兩行來自於 父節點
82 81 1152
60 1152
第三步同樣的操作條件變為parent_id in(84,61)
SQL> select agency_id,parent_id,organ_id
2 from t_agency
3 where VALIDATE_STATUS = 'Y'
4 and parent_id in(84,61)
5 ;
AGENCY_ID PARENT_ID ORGAN_ID
----------- ----------- ----------------------------------------
86 84 1152
得到1行,可以看出此兩行來自於 父節點
84 82 1152006
第四步繼續田間變為parent_id =86
SQL> select agency_id,parent_id,organ_id
2 from t_agency
3 where VALIDATE_STATUS = 'Y'
4 and parent_id =86
5 ;
AGENCY_ID PARENT_ID ORGAN_ID
----------- ----------- ----------------------------------------
至此樹形結構形成,並且中止。
82 59 60 61 86
84 61
86
形成了8行
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7728585/viewspace-592237/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle sql with 語句語法與例子OracleSQL
- ORACLE結構化查詢語句Oracle
- 樹型結構start with..........connect by prior
- oracle語句練習--初級Oracle
- 6、迴圈結構語句
- 7、條件結構語句
- ### 流程控制語句結構
- 流程控制語句結構
- Java學習之分支結構---判斷語句:if語句和switch語句Java
- Oracle、MySQL常見表結構變更語句對比OracleMySql
- c語言中的三種迴圈語句結構C語言
- SQL語句查詢表結構SQL
- SQLite SQL語句結構詳解SQLite
- 在Oracle 9i中修改表的結構的相關sql語句OracleSQL
- Oracle常用維護語句總結Oracle
- Oracle 樹形結構查詢的特殊用法Oracle
- oracle的sql語句OracleSQL
- java基礎筆記 -- 6.選擇結構-if語句-switch語句Java筆記
- Oracle 樹操作(select…start with…connect by…prior)Oracle
- oracle語句Oracle
- 由SQL語句執行過程觸發對Oracle體系結構的思考SQLOracle
- Android 多級樹形結構顯示Android
- 初級進階版SQL語句總結(1)SQL
- 編寫js語句結束時保持良好的習慣-源於身邊例子JS
- C語言語句知識結構大學霸IT達人C語言
- Oracle Hints語句的用法Oracle
- Oracle的多表插入語句Oracle
- oracle的表分析語句Oracle
- 常用的oracle基本語句Oracle
- oracle的connect by語句Oracle
- AST語法結構樹初學者完整教程AST
- Java 教學例子 目錄樹 (初級) (轉)Java
- ORACLE常用語句:Oracle
- 常用oracle語句Oracle
- oracle sql語句OracleSQL
- MySQL多層級結構-樹搜尋介紹MySql
- python中if語句的用法及if-else結構的使用Python
- C#快速入門教程(12)—— if語句結構C#