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

SQL obtém a última ocorrência do campo em cada linha


No SQL Server 2012+, você pode usar lag() . No SQL Server 2008, você pode usar uma subconsulta correlacionada ou uma aplicação externa. Aqui está um método:
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;