sql >> Databasteknik >  >> RDS >> Sqlserver

SQL Server rekursiv fråga

Titta på att använda vad som kallas en CTE (common table expression) (Se MSDN-dokumentet):

;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. Konvertera alla poster i postgres till titelbokstäver, första bokstaven versaler

  2. PostgreSQL hög tillgänglighet med Master-Slave &Master-Master-arkitekturer

  3. Fråga för att bara hämta siffror från en sträng

  4. SQL Server SMO klagar över att DLL saknas