Oracle
 sql >> Baza danych >  >> RDS >> Oracle

SQL SELECT, aby znaleźć cykliczne odwołania w drzewie zorganizowanym według identyfikatora ojca?

SELECT  n.*, CONNECT_BY_ROOT(id), level
FROM    elements n
START WITH
        id IN
        (
        SELECT  MIN(id)
        FROM    (
                SELECT  id, CONNECT_BY_ROOT(id) AS root
                FROM    elements
                START WITH
                        id IN
                        (
                        SELECT  id
                        FROM    elements n
                        WHERE   CONNECT_BY_ISCYCLE = 1
                        CONNECT BY NOCYCLE
                                father_id = PRIOR id
                        )
                CONNECT BY NOCYCLE
                        id = PRIOR father_id
                )
        GROUP BY
                root
        )
CONNECT BY NOCYCLE
        id = PRIOR father_id

Możesz przeczytać ten artykuł:




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zapytanie w celu znalezienia pracowników, którzy skorzystali z więcej niż przysługującego im urlopu w odniesieniu do ich ról zawodowych

  2. Porównaj dwa schematy i zaktualizuj stary schemat o nowe kolumny nowego schematu

  3. Jak zatrzymać proces cofania Oracle?

  4. Zapytanie Oracle SQL - generuj rekordy między dwiema datami

  5. Lista zadań