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

Избиране на N-ти запис в SQL заявка

Това е класически въпрос за интервю.

В Ms SQL 2005+ можете да използвате ROW_NUMBER() ключова дума и имат Предикат ROW_NUMBER =n

USE AdventureWorks;
GO
WITH OrderedOrders AS
(
    SELECT SalesOrderID, OrderDate,
    ROW_NUMBER() OVER (ORDER BY OrderDate) AS 'RowNumber'
    FROM Sales.SalesOrderHeader 
)  

SELECT * 
FROM OrderedOrders 
WHERE RowNumber = 5;

В SQL2000 можете да направите нещо като

SELECT Top 1 *FROM
[tblApplications]
where [ApplicationID] In
(
    SELECT TOP 5 [ApplicationID]
    FROM [dbo].[tblApplications]
    order by applicationId Desc
)


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

  2. Как да форматирате цифрова колона като телефонен номер в SQL

  3. Инструкция за динамично актуализиране с имена на колони на променливи

  4. Как да коригирате „В списъка за избор може да бъде посочен само един израз…“ в SQL Server

  5. Получаване на обратна връзка за резултат от съхранена процедура в Entity Framework