sql >> Database teknologi >  >> RDS >> Sqlserver

Valg af Nth Record i en SQL-forespørgsel

Dette er et klassisk interviewspørgsmål.

I Ms SQL 2005+ kan du bruge ROW_NUMBER() søgeord og har prædikatet 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;

I SQL2000 kunne du gøre noget som

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


  1. Håndtering af din MS SQL-replikering

  2. MySQL Udfyld manglende datoer mellem to datoer for en given status

  3. Hirarkisk sortering i sql-server, når underordnet id indeholder '.'

  4. Oracle HVIS eksisterer SÅ, ANDET