Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Wybieranie N-tego rekordu w zapytaniu SQL

To klasyczne pytanie podczas rozmowy kwalifikacyjnej.

W Ms SQL 2005+ możesz użyć ROW_NUMBER() słowo kluczowe i mają predykat 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;

W SQL2000 możesz zrobić coś takiego jak

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. Zrozumienie QUOTED_IDENTIFIER

  2. Logowanie nie powiodło się. Login pochodzi z niezaufanej domeny i nie może być używany z uwierzytelnianiem Windows

  3. SQL Unpivot wiele kolumn Dane

  4. Grupuj według zapytania sql w kolumnie połączonej przecinkami

  5. Zapytanie SQL do wyszukiwania wierszy tylko ze znakami specjalnymi