Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

MSSQL 2008:Obtenha o último registro atualizado por campo específico


No SQL Server 2012, você usaria apenas lag() . Você pode replicar isso de várias maneiras no SQL Server 2008. Aqui está um método usando 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;