Запитване – Цялата дървовидна структура :
SELECT *
FROM Employee
START WITH ParentID IS NULL
CONNECT BY PRIOR ID = ParentID
ORDER SIBLINGS BY LastName, FirstName, ID;
Запитване – Децата на даден служител :
Не се нуждаете от йерархична заявка за това.
(Родителят се дава от променливата за свързване :parent_id
)
SELECT *
FROM Employee
WHERE ParentID = :parent_id
ORDER BY LastName, FirstName, ID;
Запитване – Потомците на даден служител :
Същата заявка като за цялото дърво, но с различна начална точка
(Родителят се дава от променливата за свързване :parent_id
)
SELECT *
FROM Employee
START WITH ParentID = :parent_id
CONNECT BY PRIOR ID = ParentID
ORDER SIBLINGS BY LastName, FirstName, ID;
Запитване – Служителят и техните предци :
Подобно на предишната заявка, но с CONNECT BY
обърнато и няма да е необходимо да поръчвате братята и сестрите, тъй като ще има само един непосредствен мениджър на служител.
(Служителят се дава от променливата за свързване :employee_id
)
SELECT *
FROM Employee
START WITH ID = :employee_id
CONNECT BY PRIOR ParentID = ID;
Запитване - Мениджър на служителя :
Идентично на предишната заявка, но с филтър LEVEL = 2
просто да получите непосредствения родителски ред.
(Служителят се дава от променливата за свързване :employee_id
)
SELECT e.*
FROM Employee e
WHERE LEVEL = 2
START WITH ID = :employee_id
CONNECT BY PRIOR ParentID = ID;