sql >> Database teknologi >  >> RDS >> Oracle

Træstruktur i sql i Oracle. Sådan viser du træ, underordnede noder og overordnede noder i SQL Oracle

Forespørgsel – hele træstrukturen :

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

Forespørgsel – børnene af en given medarbejder :

Du behøver ikke en hierarkisk forespørgsel til dette.
(Overordnet er givet af bindevariablen :parent_id )

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

Forespørgsel – efterkommerne af en given medarbejder :

Den samme forespørgsel som for hele træet, men med et andet startpunkt
(Forælderen er givet af bindevariablen :parent_id )

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

Forespørgsel – medarbejderen og deres forfædre :

Svarende til den forrige forespørgsel, men med CONNECT BY vendt, og du behøver ikke bestille søskende, da der kun vil være én nærmeste leder pr. medarbejder.
(Medarbejderen er givet af bindevariablen :employee_id )

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

Forespørgsel - Medarbejderens leder :

Identisk med den forrige forespørgsel, men med et filter LEVEL = 2 for bare at få den umiddelbare overordnede række.
(Medarbejderen er givet af bindevariablen :employee_id )

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



  1. MySQL læringssti

  2. Om der skal bruges SET NAMES

  3. Hvordan får jeg oplysninger om dato/klokkeslæt fra en TIMESTAMP-kolonne?

  4. ML{.NET} Introduktion