Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

MSSQL 2008 :obtenir le dernier enregistrement mis à jour par champ spécifique

Dans SQL Server 2012, vous utiliseriez simplement lag() . Vous pouvez répliquer cela de différentes manières dans SQL Server 2008. Voici une méthode utilisant cross apply :

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;