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

Bagaimana cara mengubah kueri hierarki Oracle ke postgresql?

Dalam PostgreSQL, kueri rekursif dibuat dengan terlebih dahulu menetapkan inisial kumpulan baris (istilah non-rekursif , yaitu mereka yang berada di akar atau tingkat akhir hierarki). Iterasi berikutnya (selama istilah rekursif , sub-kueri setelah UNION ALL ) kemudian tambahkan baris ke kumpulan hasil dari baris yang tersisa di kumpulan baris masukan sampai tidak ada lagi baris yang ditambahkan.

Dalam kasus Anda, sub-kueri awal tidak difilter sehingga Anda cukup menambahkan semua baris pada proses awal, tanpa meninggalkan apa pun untuk proses berikutnya.

Coba yang berikut ini:

WITH RECURSIVE q AS (
  SELECT po.catalog_id,po.sub_tree_id
  FROM my_catalog po
  WHERE sub_tree_id = 0  -- this initially selects only "root" rows
UNION ALL
  SELECT po.catalog_id,po.sub_tree_id
  FROM my_catalog po
  JOIN q ON q.catalog_id=po.sub_tree_id
)
SELECT * FROM q;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. gem install pg --with-pg-config berfungsi, bundel gagal

  2. Panda menulis kerangka data ke skema postgresql lainnya

  3. Atribut ganti nama PostgreSQL di bidang jsonb

  4. Koneksi localhost Postgresql - Koneksi ditolak

  5. Heroku PG:Pulihkan Akses Tulis dicabut