[英]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.