Oracle
 sql >> база данни >  >> RDS >> Oracle

Oracle SQL Connect By Logic

Последното условие не се отнася за вашите данни, но е много важно да избегнете безкрайна рекурсия.

За да илюстрирате тази точка, помислете какво ще се случи, ако добавите още един ред към вашата таблица:

E40 E40

Ако започнете с E40 вместо E90 , Oracle ще се завърти в безкрайна рекурсия без EMP_ID != MANAGER_ID състояние, защото E40 ще се свърже обратно към E40 .

Имайте предвид, че по-добрият подход за писане на тази заявка е да използвате NOCYCLE опция вместо кодиране в изрична проверка:

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да получите ключова стойност като набор от резултати от колона Oracle JSON с помощта на JSON_TABLE

  2. Изчистете заглавието в Oracle spool

  3. Как да проверите дали Oracle Client е инсталиран или не като предпоставка за инсталиране на компонент

  4. Какво означават квадратни скоби в Oracle SQL заявка?

  5. Как да създадете динамично променлива с типа данни таблица?