Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Truy vấn SQL để giải quyết các phụ thuộc bắc cầu trong cơ sở dữ liệu

Khi bạn đang chạy Oracle 11g (và Nếu nó xảy ra là Bản phát hành 2), là một trong các phương pháp, bạn có thể sử dụng biểu thức bảng chung đệ quy (còn được gọi là bao gồm truy vấn phụ đệ quy) để nhận được kết quả mong muốn .

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. từ khóa FROM không được tìm thấy ở vùng tìm kiếm

  2. Hàm LOG () trong Oracle

  3. Làm thế nào bạn có thể buộc một hàm trong mệnh đề where thực thi một lần trong oracle?

  4. Trong WiX, làm cách nào để kiểm tra sự tồn tại của khóa đăng ký (không phải giá trị) cho Oracle ODP.Net

  5. Cơ sở dữ liệu lỗi của Oracle ở đâu?