Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Permintaan SQL untuk menyelesaikan dependensi transitif dalam database

Saat Anda menjalankan Oracle 11g (dan Jika itu adalah Rilis 2), sebagai salah satu metode, Anda dapat menggunakan ekspresi tabel umum rekursif (juga dikenal sebagai pemfaktoran sub-kueri rekursif) untuk mendapatkan hasil yang diinginkan .

SQL> with rcte(r1, r2, lv, root) as(
  2    select r1
  3         , r2
  4         , 0 lv
  5         , r1
  6     from rd
  7    where r1 = 1
  8  
  9    union all
 10  
 11    select t.r1
 12         , t.r2
 13         , lv + 1
 14         , q.root
 15      from rd   t
 16      join rcte q
 17        on (t.r1 = q.r2)
 18  )
 19  search depth first by r1 set s
 20  cycle r1 set is_cycle to 'y' default 'n'
 21  
 22  select root
 23       , r2
 24    from rcte
 25  where is_cycle = 'n'
 26    and r2 <> root
 27  ;

      ROOT         R2
---------- ----------
         1          2
         1          3
         1          4
         1          5


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. java.sql.SQLException:ORA-00932:tipe data tidak konsisten:NOMOR yang diharapkan mendapat BINARY

  2. python:menghubungkan ke database Oracle menggunakan dompet/tnsnames Oracle

  3. Pengenal 'APEX_JSON.PARSE' harus dideklarasikan di Oracle 11.2.0

  4. Bagaimana Mendapatkan Quarter From Date di Oracle?

  5. Memasukkan beberapa baris dengan urutan di Oracle