PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Chcę zwrócić nową kolumnę przy użyciu Rekursywnie w SQL?

To jest kanoniczny przykład Z REKURSYWNYMI

Spróbuj tego:

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

Jak opisano w dokumentacji:

Z REKURSCYJNYM zawsze składa się z

  1. Termin nierekurencyjny
  2. ZWIĄZEK lub ZŁĄCZ WSZYSTKIE
  3. Termin rekurencyjny, jedyny, który może odnosić się do wyniku zapytania

Rekusja kończy się, gdy poprzednia iteracja nie ma wyjścia.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Skrypt PHP z poleceniami PostgreSQL zwracającymi NULL dla danych JSon

  2. Zapytanie Postgresql w 10 sekund

  3. Czy mogę użyć polecenia \copy do funkcji postgresql?

  4. Jak mogę dołączyć bazę danych do aplikacji w Heroku?

  5. Konwertować interwał na mikrosekundy jako typ liczby w PostgreSQL?