Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Baumstruktur in SQL in Oracle. So zeigen Sie Baum, untergeordnete Knoten und übergeordnete Knoten in SQL Oracle an

Abfrage - Die gesamte Baumstruktur :

SELECT *
FROM   Employee
START WITH ParentID IS NULL
CONNECT BY PRIOR ID = ParentID
ORDER SIBLINGS BY LastName, FirstName, ID;

Abfrage - Die Kinder eines bestimmten Mitarbeiters :

Dazu benötigen Sie keine hierarchische Abfrage.
(Der Elternteil wird durch die Bind-Variable :parent_id angegeben )

SELECT *
FROM   Employee
WHERE  ParentID = :parent_id
ORDER BY LastName, FirstName, ID;

Abfrage - Die Nachkommen eines bestimmten Mitarbeiters :

Dieselbe Abfrage wie für den gesamten Baum, aber mit einem anderen Startpunkt
(Der Elternteil wird durch die Bind-Variable :parent_id angegeben )

SELECT *
FROM   Employee
START WITH ParentID = :parent_id
CONNECT BY PRIOR ID = ParentID
ORDER SIBLINGS BY LastName, FirstName, ID;

Abfrage – Der Mitarbeiter und seine Vorfahren :

Ähnlich wie die vorherige Abfrage, aber mit dem CONNECT BY umgekehrt und Sie müssen die Geschwister nicht ordnen, da es nur einen unmittelbaren Vorgesetzten pro Mitarbeiter gibt.
(Der Mitarbeiter wird durch die Bindungsvariable :employee_id angegeben )

SELECT *
FROM   Employee
START WITH ID = :employee_id
CONNECT BY PRIOR ParentID = ID;

Abfrage – Der Vorgesetzte des Mitarbeiters :

Identisch mit der vorherigen Abfrage, aber mit einem Filter LEVEL = 2 um nur die unmittelbar übergeordnete Zeile zu erhalten.
(Der Mitarbeiter wird durch die Bindungsvariable :employee_id angegeben )

SELECT e.*
FROM   Employee e
WHERE  LEVEL = 2
START WITH ID = :employee_id
CONNECT BY PRIOR ParentID = ID;