sql >> Databáze >  >> RDS >> Oracle

Oracle SQL Connect By Logic

Poslední podmínka se nevztahuje na vaše data, ale je velmi důležité vyhnout se nekonečné rekurzi.

Pro ilustraci tohoto bodu zvažte, co by se stalo, kdybyste do tabulky přidali další řádek:

E40 E40

Pokud začnete s E40 místo E90 , Oracle by se otočil do nekonečné rekurze bez EMP_ID != MANAGER_ID podmínku, protože E40 se připojí zpět k E40 .

Všimněte si, že lepší přístup k psaní tohoto dotazu je použít NOCYCLE možnost namísto kódování v explicitní kontrole:

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



  1. V MySQL:Jak předat název tabulky jako argument uložené procedury a/nebo funkce?

  2. Načítání dat z MySQL v dávkách přes Python

  3. PHP Třídění nejbližších souřadnic

  4. V dotazu na regulární výraz MySQL se nerozlišují velká a malá písmena