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

PostgreSQL có cột giả như LEVEL trong Oracle không?

Postgres không có truy vấn phân cấp . Không có CONNECT BY , do đó cũng không có LEVEL .

Bảng mô-đun bổ sung cung cấp chức năng connectby() làm gần như tương tự. Xem:

Hoặc bạn có thể làm những điều tương tự với CTE đệ quy tiêu chuẩn và level cột tăng dần với mỗi lần đệ quy.
Truy vấn này trong Oracle:

SELECT employee_id, last_name, manager_id, LEVEL
FROM   employees
CONNECT BY PRIOR employee_id = manager_id;

.. có thể được dịch sang CTE đệ quy này trong Postgres:

WITH RECURSIVE cte AS (
   SELECT employee_id, last_name, manager_id, 1 AS level
   FROM   employees

   UNION  ALL
   SELECT e.employee_id, e.last_name, e.manager_id, c.level + 1
   FROM   cte c
   JOIN   employees e ON e.manager_id = c.employee_id
   )
SELECT *
FROM   cte;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. yêu cầu postgresql qua một số giản đồ

  2. Làm cách nào để chuyển đổi một cặp vĩ độ / kinh độ thành một loại địa lý PostGIS?

  3. Dạng url cơ sở dữ liệu postgresql cục bộ của tôi là gì?

  4. Lỗi cú pháp nhập không hợp lệ cho số nguyên đối với một số không phải là số nguyên?

  5. NHÓM THEO các ngày liên tiếp được phân định bằng khoảng trống