Truy vấn - Toàn bộ cấu trúc cây :
SELECT *
FROM Employee
START WITH ParentID IS NULL
CONNECT BY PRIOR ID = ParentID
ORDER SIBLINGS BY LastName, FirstName, ID;
Truy vấn - Con của một nhân viên nhất định :
Bạn không cần truy vấn phân cấp cho việc này.
(Giá trị gốc được cung cấp bởi biến liên kết :parent_id
)
SELECT *
FROM Employee
WHERE ParentID = :parent_id
ORDER BY LastName, FirstName, ID;
Truy vấn - Con cháu của một nhân viên nhất định :
Truy vấn giống như đối với toàn bộ cây nhưng có điểm bắt đầu khác
(Giá trị gốc được cung cấp bởi biến liên kết :parent_id
)
SELECT *
FROM Employee
START WITH ParentID = :parent_id
CONNECT BY PRIOR ID = ParentID
ORDER SIBLINGS BY LastName, FirstName, ID;
Truy vấn - Nhân viên và tổ tiên của họ :
Tương tự như truy vấn trước nhưng với CONNECT BY
đã đảo ngược và bạn sẽ không cần đặt hàng anh chị em vì sẽ chỉ có một người quản lý trực tiếp cho mỗi nhân viên.
(Nhân viên được cung cấp bởi biến ràng buộc :employee_id
)
SELECT *
FROM Employee
START WITH ID = :employee_id
CONNECT BY PRIOR ParentID = ID;
Truy vấn - Người quản lý của nhân viên :
Giống với truy vấn trước đó nhưng có bộ lọc LEVEL = 2
để chỉ lấy hàng mẹ ngay lập tức.
(Nhân viên được cung cấp bởi biến liên kết :employee_id
)
SELECT e.*
FROM Employee e
WHERE LEVEL = 2
START WITH ID = :employee_id
CONNECT BY PRIOR ParentID = ID;