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

Saya ingin mengembalikan kolom baru menggunakan Rekursif dalam SQL?

Ini adalah contoh kanonik dari DENGAN RECURSIVE

Coba ini:

with recursive subordinates as
  (select 
      employeid, 
      e.managerid, 
      e.managerid as leader 
   from employes e 
   where e.managerid in(select * from leaders) -- non recursive term
   union 
   select 
      e.employeid, 
      e.managerid, 
      a.managerid as leader 
    from employes e 
          join subordinates a on a.employeid = e.managerid -- recursive term
) select * from subordinates

Seperti yang dijelaskan dalam dokumentasi:

DENGAN REKURSI selalu disusun oleh

  1. Istilah non rekursif
  2. UNI atau UNION SEMUA
  3. Istilah rekursif, satu-satunya yang dapat merujuk ke keluaran kueri

Rekusi berakhir ketika iterasi sebelumnya tidak memiliki output.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Reg. dukungan transaksi untuk pekerjaan batch musim semi di tingkat pekerjaan

  2. Meminta PostgreSQL untuk laporan Open-High-Low-Close (OHLC)

  3. Izinkan null di kolom unik

  4. BUAT BAHASA plpython3u – PostgreSQL 9.6

  5. Bagaimana cara mengetahui kapan terakhir kali database PostgreSQL diperbarui?