sql >> Databáze >  >> RDS >> Sqlserver

Výběr N-tého záznamu v dotazu SQL

Toto je klasická otázka na pohovor.

V Ms SQL 2005+ můžete použít ROW_NUMBER() klíčové slovo a mají predikát 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;

V SQL2000 můžete udělat něco jako

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


  1. MySQL Store Image BLOB Výkon špatné praxe

  2. Udělte oprávnění pouze zobrazení

  3. Jak vypsat pouze konkrétní tabulky z MySQL?

  4. Oprava „CHYBA:  každý dotaz KROMĚ musí mít stejný počet sloupců“ v PostgreSQL