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

Oracle SQL Connect By Logic

Den sidste betingelse gælder ikke for dine data, men det er meget vigtigt at undgå uendelig rekursion.

For at illustrere dette punkt, overvej, hvad der ville ske, hvis du tilføjede endnu en linje til din tabel:

E40 E40

Hvis du starter med E40 i stedet for E90 , ville Oracle spinde ind i en uendelig rekursion uden EMP_ID != MANAGER_ID tilstand, fordi E40 ville oprette forbindelse tilbage til E40 .

Bemærk, at en bedre tilgang til at skrive denne forespørgsel er at bruge NOCYCLE mulighed i stedet for at kode i en eksplicit check:

SELECT *
FROM Temp
    START WITH EMP_ID = 'E90'
    CONNECT BY NOCYCLE PRIOR EMP_ID = MANAGER_ID
ORDER BY EMP_ID



  1. django kan ikke forbinde mysql i docker-compose

  2. Hvordan kan jeg fremskynde MySQL-forespørgsel med flere joinforbindelser

  3. Læsning af afkrydsningsfeltværdier ved hjælp af imploderingsfunktion

  4. Sådan gemmer du en fil i en mysql-database ved hjælp af blob