日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

oracle connect by用法

系統 2298 0

?

先用scott用戶下的emp表做實驗.
emp表有個字段,一個是empno(員工編號),另一個是mgr(上級經理編號)
下面是表中所有數據

?

oracle connect by用法

?

1
select ? * from ? emp start with ? empno=7698 connect ? by ?? mgr= prior ? empno;

?

執行結果如下:

?

oracle connect by用法

?

得到的結果是empno=7698的數據,以及會得到mgr=7698的數據。
它是向下遞歸的, 即我們從empno=7698開始遍歷,去找出mgr=7698的所有數據S(用S代表查出的所有數據.), 然后在從S中的empno的值去匹配查找是否還有滿足,mgr in (s.empno)的數據。一直遍歷進去到沒有數據為止。?

?

?下面的這個可以詳細的表述效果。

?

1
2
--向下遞歸遍歷
select ? * from ? emp connect ? by ? mgr= prior ? empno start with ? empno=7839;

?

執行結果如下:

?

oracle connect by用法

?

1
2
--向上遞歸遍歷
select * from emp connect by prior mgr=empno start with empno= 7844 ;

?

執行結果如下:

?

?

這樣直到沒有匹配的數據為止。
以上只是簡單的舉了個例子。

?

connect by是結構化查詢中用到的,其基本語法是:

?

1
2
3
4
select ? ... from ? tablename
start by ? cond1
connect ? by ? cond2
where ? cond3

?

簡單說來是將一個樹狀結構存儲在一張表里,比如一個表中存在兩個字段(如emp表中的empno和mgr字段):empno, mgr那么通過表示每一條記錄的mgr是誰,就可以形成一個樹狀結構。

?

用上述語法的查詢可以取得這棵樹的所有記錄。
其中:
cond1是根結點的限定語句,當然可以放寬限定條件,以取得多個根結點,實際就是多棵樹。
cond2是連接條件,其中用prior表示上一條記錄,比如connect by prior id=praentid就是說上一條記錄的id是本條記錄的praentid,即本記錄的父親是上一條記錄。
cond3是過濾條件,用于對返回的所有記錄進行過濾。
prior和start with關鍵字是可選項
prior運算符必須放置在連接關系的兩列中某一個的前面。對于節點間的父子關系,prior運算符在一側表示父節點,在另一側表示子節點,從而確定查找樹結構是的順序是自頂向下還是自底向上。在連接關系中,除了可以使用列名外,還允許使用列表達式。
start with子句為可選項,用來標識哪個節點作為查找樹型結構的根節點。若該子句被省略,則表示所有滿足查詢條件的行作為根節點。

?

oracle connect by用法


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 怀仁县| 攀枝花市| 南丹县| 上犹县| 谢通门县| 永和县| 迁西县| 观塘区| 玉溪市| 鄄城县| 铁力市| 景宁| 利津县| 陵川县| 依兰县| 梧州市| 禄劝| 抚远县| 上饶市| 绥江县| 新民市| 平阴县| 江西省| 巴南区| 尖扎县| 磐石市| 茌平县| 荣昌县| 含山县| 鲁山县| 咸丰县| 红安县| 南阳市| 三明市| 黎城县| 买车| 若尔盖县| 新巴尔虎右旗| 炉霍县| 栖霞市| 开阳县|