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

Рекурсивна заявка в Oracle

В Oracle това се прави лесно с помощта на CONNECT BY

select message_id, parent_id, message_content
from messages
start with message_id = 97 -- this is the root of your conversation
connect by prior message_id = parent_id;

Това обхожда дървото отгоре надолу.

Ако искате да преминете по дървото от едно съобщение до корена, променете start with и connect by част:

select message_id, parent_id, message_content
from messages
start with message_id = 100 -- this is the root of your conversation
connect by prior parent_id = message_id; -- this now goes "up" in the tree


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Какво означава двоеточие:прави в SQL заявка?

  2. Как да създадете чужд ключ в Oracle SQL Developer?

  3. Oracle SQL подреждане по проблеми с подзаявката!

  4. Как да създадете последователност на Oracle, започваща с максимална стойност от таблица?

  5. ORA-00904 Невалиден идентификатор” за идентификатор в група по клауза