Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

MSSQL 2008:Abrufen des letzten aktualisierten Datensatzes nach einem bestimmten Feld

In SQL Server 2012 würden Sie einfach lag() verwenden . Sie können dies auf verschiedene Weise in SQL Server 2008 replizieren. Hier ist eine Methode, die cross apply verwendet :

select c.*
from content c cross apply
     (select top 1 c2.*
      from content c2
      where c2.contentId = c.contentId and c2.UpdatedAt < c.UpdatedAt
      order by c2.UpdatedAt desc
     ) cprev
where c.FileId <> cprev.FileId;