oracle中Connect By用法介紹

來源:互聯網
上載者:User

標籤:connect by   start with   prior   oracle   

為解決oracle中自串連查詢不適合操作大表的情況,採用connect by 方式實現。oracle中可以用START WITH...CONNECT BY PRIOR子句實現遞迴查詢,connect by 在結構化查詢中應用。

基本文法:

            select ... from <TableName>
                   where <Conditional1>
                   connect by <Conditional2>  

                   start with <Conditional3>

 

connect by 和start with的先後順序可以調換

其中:

Conditional1是過濾條件,用於對返回的所有記錄進行過濾。
Conditional2是串連條件

Conditional3是過濾條件,用於對返回的所有記錄進行過濾。

 

select * From emp;   其中empno(員工編號),mgr(經理編號)

 

可以對其中員工和經理對應關係整理如下:其中下一級節點的經理號是上一級的員工號

查詢語句:

          SQL> select level 級數 ,connect_by_isleaf 是否葉子 ,  ename 員工姓名 ,mgr 經理號 from emp connect by  prior empno=mgr start with mgr is null;

 

 

level,connect_by_isleaf,connect_by_iscycle偽列

level      就是這個資料屬於哪一個等級

connect_by_isleaf       就是樹的葉子節點

connect_by_iscycle    導致出現死迴圈的那個樹枝

prior運算子必須放置在串連關係的兩列中某一個的前面。對於節點間的父子關係,prior運算子在一側表示父節點,在另一側表示子節點,從而確定尋找樹結構是的順序是自頂向下還是自底向上

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

oracle中Connect By用法介紹

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.