Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

SQL Получаване на последно срещане на поле срещу всеки ред

В SQL Server 2012+ можете да използвате lag() . В SQL Server 2008 можете да използвате корелирана подзаявка или външно приложение. Ето един метод:

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;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL ефективен начин за присъединяване към таблица, където съществуват всички стойности

  2. Сума от час и минути в SQL Server 2008

  3. OrderBy в SQL Server за поставяне на положителни стойности преди отрицателни стойности

  4. Връщане на всички неизчислени колони от таблица в SQL Server

  5. Връщане на списък с таблици и изгледи в SQL Server с помощта на T-SQL (sp_tables)