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

SQL Obtenir la dernière occurrence du champ sur chaque ligne

Dans SQL Server 2012+, vous pouvez utiliser lag() . Dans SQL Server 2008, vous pouvez utiliser une sous-requête corrélée ou une application externe. Voici une méthode :

select documentid, reference,
       (select top 1 documentid
        from table t2
        where t2.reference = t.reference and
              t2.documentid < t.documentid
        order by documentid desc
       ) as LastDocumentId
from table t;