Connect by prior Start With…Connect By…(Oracle查詢樹形關係)

來源:互聯網
上載者:User

  Connect BY Prior Start With....Connect BY...用來實現SQL的層次查詢,經常會被用到一個表中存在遞歸關係的時候.

語法:

大致語法: select * from Table_Name Where 條件1 Connect by 條件2 Start with 條件3

  其中Connect by 條件2 與Start With 條件3 語句放置的先後順序不影響查詢的結果。

  【Where 條件1】 是根據 "Connect by 條件2 與Start With 條件3" 選擇出來的記錄進行過濾,是針對單條記錄的過濾,不考慮樹的結構。

  【條件2】是指定構造樹的條件,以及對樹分支的過濾條件,在這裡執行的過濾會把符合條件的記錄及其下的所有子節點都過濾出來.

  【條件3】是限定作為搜尋起始點的條件,如果是自上而下的搜尋則限定條件作為根節點的條件,如果是自下而上的搜尋則是限定作為自節點的條件.

實例:

  Create Table

CREATE TABLE SFIS1.SYS_PROGRAM_FUNC
(
  FUNC_CODE    VARCHAR2(30 BYTE), 
  FUNC_NAME    VARCHAR2(30 BYTE),
  FUNC_TEXT    VARCHAR2(30 BYTE),
  FUNC_TYPE    VARCHAR2(1 BYTE), 
  PARENT_CODE  VARCHAR2(30 BYTE), 
  CREATER      VARCHAR2(30 BYTE),
  CREATDATA    DATE,
  IS_ENABLE    VARCHAR2(1 BYTE)                 DEFAULT 1
)

InSert DATA

為了更直觀的顯示數據這裡附上一直圖表

FUNC_CODE FUNC_NAME FUNC_TEXT FUNC_TYPE PARENT_CODE IS_ENABLE
SYS_FUNC SYS_FUNC SYSTME 1 ROOT 1
WIP_FUNC WIP_FUNC WIP 1 ROOT 1
LAB_FUNC LAB_FUNC Label Center 1 ROOT 1
SAP_FUNC SAP_FUNC SAP TOOLS 1 ROOT 1
MENU_FUNC MENU_FUNC 菜單管理 2 SYS_FUNC 1
ROUT_FUNC ROUT_FUNC 路由管理 2 WIP_FUNC 1
CMD_FUNC CMD_FUNC 指令管理 2 LAB_FUNC 1
INTE_FUNC INTE_FUNC 介面管理 2 SAP_FUNC 1

SQL實現:

select FUNC_CODE,FUNC_TEXT,PARENT_CODE,is_Enable from SYS_PROGRAM_FUNC
where is_Enable='1'
START WITH FUNC_CODE in (select Func_code from SYS_PROGRAM_FUNC
where Func_type='1' )
CONNECT BY SYS_PROGRAM_FUNC.PARENT_CODE = PRIOR SYS_PROGRAM_FUNC.FUNC_CODE

關於樹狀查詢就說這些,與大家共同學習共同進步,有需要改進的地方大家給我留言,進行改善。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.