Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Рекурсивна заявка на SQL Server

Разгледайте използването на това, което се нарича CTE (израз за обща таблица) (Вижте документа на 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. @@ROWCOUNT – Вземете броя на редовете, засегнати от последното изявление в SQL Server

  2. Грешка 28000:Неуспешно влизане за потребител DOMAIN\\user с pyodbc

  3. Пример за sys.dm_sql_referenced_entities() на SQL Server, връщащ обект, който препраща към свързан сървър

  4. Познайте връзките между всички таблици на базата данни в SQL Server

  5. SQL заявка за разделяне на данните в колоните на редове