Dotaz – celá stromová struktura :
SELECT *
FROM Employee
START WITH ParentID IS NULL
CONNECT BY PRIOR ID = ParentID
ORDER SIBLINGS BY LastName, FirstName, ID;
Dotaz – děti daného zaměstnance :
K tomu nepotřebujete hierarchický dotaz.
(Rodič je dán proměnnou vazby :parent_id
)
SELECT *
FROM Employee
WHERE ParentID = :parent_id
ORDER BY LastName, FirstName, ID;
Dotaz – Potomci daného zaměstnance :
Stejný dotaz jako pro celý strom, ale s jiným počátečním bodem
(Rodič je dán proměnnou vazby :parent_id
)
SELECT *
FROM Employee
START WITH ParentID = :parent_id
CONNECT BY PRIOR ID = ParentID
ORDER SIBLINGS BY LastName, FirstName, ID;
Dotaz – Zaměstnanec a jeho předci :
Podobné jako v předchozím dotazu, ale s CONNECT BY
obráceně a nebudete muset objednávat sourozence, protože na jednoho zaměstnance bude připadat pouze jeden přímý vedoucí.
(Zaměstnanec je dán proměnnou vazby :employee_id
)
SELECT *
FROM Employee
START WITH ID = :employee_id
CONNECT BY PRIOR ParentID = ID;
Dotaz – manažer zaměstnance :
Totožné s předchozím dotazem, ale s filtrem LEVEL = 2
získat pouze bezprostřední nadřazený řádek.
(Zaměstnanec je dán proměnnou vazby :employee_id
)
SELECT e.*
FROM Employee e
WHERE LEVEL = 2
START WITH ID = :employee_id
CONNECT BY PRIOR ParentID = ID;