簡體   English   中英

通過指定根節點和葉節點來進行oracle分層查詢

[英]oracle hierarchical query by specifing root and leaf node

我有一個Oracle表,其中包含以下字段MgrID,EmpID,名稱。

層次結構實際上從CEO級別開始,但是我想指定CIO的EmpID作為特定員工的根和EmpID,並獲取該員工的層次結構。 如何在Oracle中建立該查詢?

在orcale中,您可以將select用作開頭為和連接方式

 select  * from your_table  
 start with EmpID = yuor_value
 connect by prior your_child = your_parent;

Oracle安裝程序

CREATE TABLE Table_name (
  EmpID INT PRIMARY KEY,
  MgrID INT REFERENCES Table_name ( EmpID ),
  Name  VARCHAR2(10),
  Role  VARCHAR2(10)
);

INSERT INTO table_name
SELECT 1, NULL, 'Amy',     'CEO'      FROM DUAL UNION ALL
SELECT 2, 1,    'Bob',     'Director' FROM DUAL UNION ALL
SELECT 3, 1,    'Carol',   'Director' FROM DUAL UNION ALL
SELECT 4, 2,    'Deb',     'CIO'      FROM DUAL;

查詢

SELECT *
FROM   table_name
START WITH role = 'CIO'
CONNECT BY PRIOR MgrID = EmpID;

輸出

     EMPID      MGRID NAME       ROLE     
---------- ---------- ---------- ----------
         4          2 Deb        CIO        
         2          1 Bob        Director   
         1            Amy        CEO        

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM