sql >> Databáze >  >> RDS >> Sqlserver

SQL Server rekurzivní dotaz

Podívejte se na použití toho, co se nazývá CTE (common table expression) (viz dokument MSDN):

;with cteAppointments as (
 select AppointmentID, PersonID, PrevAppointmentID
     from Appointments
     where PrevAppointmentID is null
 union all
 select a.AppointmentID, a.PersonID, a.PrevAppointmentID
     from Appointments a
         inner join cteAppointments c
             on a.PrevAppointmentID = c.AppointmentID
)
select AppointmentID, PrevAppointmentID
    from cteAppointments
    where PersonID = xxx



  1. MySQL zkombinuje dva sloupce a přidá je do nového sloupce

  2. Překvapení a předpoklady výkonu:STRING_SPLIT()

  3. Vložte primární klíč automatického zvýšení do existující tabulky

  4. ORA-01034:ORACLE není k dispozici ORA-27101:sféra sdílené paměti neexistuje