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

Kết nối theo mệnh đề để đứng đầu hệ thống phân cấp

Oracle có LEVEL cột giả mà bạn có thể sử dụng:

SELECT
  myTable.ID,
  myTable.ParentID
FROM myTable
WHERE LEVEL = 1
CONNECT BY PRIOR myTable.ID = myTable.ParentID

Để tìm giá trị cấp cao nhất (gốc) từ bất kỳ cấp nào, hãy đặt trước tên cột bằng CONNECT_BY_ROOT nhà điều hành:

SELECT
  myTable.ID,
  myTable.ParentID,
  CONNECT_BY_ROOT myTable.ID AS "Top Level ID"
FROM myTable
CONNECT BY PRIOR myTable.ID = myTable.ParentID


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Truy vấn Cơ sở dữ liệu Oracle với tên Bảng động

  2. cách chọn giá trị từ kết quả truy vấn phụ

  3. Hàm SOUNDEX () trong Oracle

  4. Oracle / Sybase SQL - lấy giá trị dựa trên bản ghi trước đó (không phải LAG đơn giản)

  5. Tính tổng các cột có giá trị null trong oracle