sql >> Database >  >> RDS >> Oracle

Oracle SQL Connect door logica

De laatste voorwaarde is niet van toepassing op uw gegevens, maar het is erg belangrijk om oneindige recursie te voorkomen.

Om dit punt te illustreren, bedenk wat er zou gebeuren als u nog een regel aan uw tabel zou toevoegen:

E40 E40

Als je begint met E40 in plaats van E90 , zou Oracle in een oneindige recursie draaien zonder EMP_ID != MANAGER_ID staat, omdat E40 zou terug verbinden met E40 .

Merk op dat een betere benadering voor het schrijven van deze query is om NOCYCLE te gebruiken optie in plaats van coderen in een expliciete controle:

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



  1. Hoe een vakbondsvraag in de doctrine te schrijven?

  2. Records met maximale waarde ophalen voor elke groep gegroepeerde SQL-resultaten

  3. Airflow mysql naar gcp Dag fout

  4. Entity Framework ORA-00932:inconsistente datatypes:"'expected CLOB got CHAR"