sql >> Databasteknik >  >> RDS >> PostgreSQL

Jag vill returnera ny kolumn med Rekursiv i SQL?

Det här är ett kanoniskt exempel på MED REKURSIVT

Prova detta:

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

Som beskrivs i dokumentationen:

A Med REKURSKIV är alltid sammansatt av

  1. En icke-rekursiv term
  2. UNION eller UNION ALL
  3. En rekursiv term, den enda som kan referera till frågeutdata

Rekusionen avslutas när den föregående iterationen inte har någon utgång.




  1. hur kontrollerar man null eller inte om mysql datatype är tidsstämpel med standardvärdet 0000-00-00 00:00?

  2. Importera BLOB (bild) från orakel till kupa

  3. En översikt över genererade kolumner för PostgreSQL

  4. Beräknar avståndet mellan en gps-plats och postgis geografivärde med hjälp av en funktion?