PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Apakah PostgreSQL memiliki kolom semu seperti LEVEL di Oracle?

Postgres tidak memiliki kueri hierarki . Tidak ada CONNECT BY , oleh karena itu juga tidak ada LEVEL .

Modul tambahan tablefunc menyediakan fungsi connectby() melakukan hal yang hampir sama. Lihat:

Atau Anda dapat melakukan hal serupa dengan CTE rekursif standar dan level kolom yang bertambah dengan setiap rekursi.
Kueri ini di Oracle:

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

.. dapat diterjemahkan ke CTE rekursif ini di 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. Operator tanda tanya dalam kueri

  2. Segarkan tampilan yang terwujud:Konkurensi, perilaku transaksional

  3. Hibernasi. PSQLException:nilai buruk untuk tipe int :admin

  4. indeks dataframe.to_sql sebagai kunci utama di postgresql

  5. Menghasilkan peringkat urutan terurut pada kueri kompleks