Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Chọn Bản ghi thứ N trong Truy vấn SQL

Đây là một câu hỏi phỏng vấn cổ điển.

Trong Ms SQL 2005+, bạn có thể sử dụng ROW_NUMBER () từ khóa và có Vị 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;

Trong SQL2000, bạn có thể làm điều gì đó như

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. Xác định kết quả câu lệnh SQL MERGE

  2. Bí quyết khôi phục các bản ghi đã xóa trong SQL Server

  3. Làm cách nào để giữ bảng tblPurchase và tblProductStock mà không bị rớt. (Tôi cần giữ cả bảng và giá trị vĩnh viễn mà không bị rớt)

  4. Làm thế nào để so sánh dấu thời gian SQL trong .NET?

  5. Truy xuất lỗi cụ thể của công việc SQL Agent