Fråga – hela trädstrukturen :
SELECT *
FROM Employee
START WITH ParentID IS NULL
CONNECT BY PRIOR ID = ParentID
ORDER SIBLINGS BY LastName, FirstName, ID;
Fråga – barnen till en viss anställd :
Du behöver ingen hierarkisk fråga för detta.
(Föräldern ges av bindningsvariabeln :parent_id
)
SELECT *
FROM Employee
WHERE ParentID = :parent_id
ORDER BY LastName, FirstName, ID;
Fråga – ättlingar till en viss anställd :
Samma fråga som för hela trädet men med en annan startpunkt
(Föräldern ges av bindningsvariabeln :parent_id
)
SELECT *
FROM Employee
START WITH ParentID = :parent_id
CONNECT BY PRIOR ID = ParentID
ORDER SIBLINGS BY LastName, FirstName, ID;
Fråga – den anställde och deras förfäder :
Liknar den föregående frågan men med CONNECT BY
omvänd och du behöver inte beställa syskonen eftersom det bara kommer att finnas en närmaste chef per anställd.
(Den anställde ges av bindningsvariabeln :employee_id
)
SELECT *
FROM Employee
START WITH ID = :employee_id
CONNECT BY PRIOR ParentID = ID;
Fråga - Anställds chef :
Identisk med föregående fråga men med ett filter LEVEL = 2
för att bara få den omedelbara överordnade raden.
(Den anställde ges av bindningsvariabeln :employee_id
)
SELECT e.*
FROM Employee e
WHERE LEVEL = 2
START WITH ID = :employee_id
CONNECT BY PRIOR ParentID = ID;