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

làm thế nào để lấy tổ tiên gốc trong truy vấn phân cấp bằng cách sử dụng oracle-10g?

Trong môi trường cơ sở dữ liệu, các khóa ngoại ở cấp cao nhất rất có thể sẽ là giá trị rỗng như vậy:

| pid  | cid  |
|------*------|
| null |  2   |
|  2   |  3   |
|  3   |  4   |
| null |  6   |
|  6   |  7   |
|  7   |  8   |

Vì vậy, tôi khuyên bạn nên sử dụng một cái gì đó như:

select connect_by_root(t1.cid) as startpoint,
       t1.cid                  as rootnode
  from your_table t1
 where connect_by_isleaf = 1
 start with t1.cid in (8, 4)
connect by prior t1.pid = t1.cid;

fiddle



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Phép trừ ngày trong Oracle

  2. vấn đề ORA-00001:ràng buộc duy nhất bị vi phạm trong INSERT / UPDATE

  3. PHP oci_connect () TNS:không thể phân giải mã định danh kết nối (ORA-12154)

  4. Có thể tiếp tục chạy mã từ điểm bị lỗi không?

  5. Cách định dạng số trong ký hiệu khoa học trong Oracle