如何进行SQL查询以从表中获取某些特定范围的行

Azh*_*har 2 sql t-sql sql-server-2005

如果表中有30条记录,如何进行SQL查询,我想从12到20中选择行,其中12和20是行号,而不是ID?

IDs         Code
5           ABC 
6           SDF
8           WSA
10          FSD
15          IOP
.
.
.
.
80          AWS 
Run Code Online (Sandbox Code Playgroud)

Pra*_*ana 6

如果您使用的是MS SQL Server,则row_number()函数可用.

例:

USE AdventureWorks2008R2;
GO
WITH OrderedOrders AS
(
    SELECT SalesOrderID, OrderDate,
    ROW_NUMBER() OVER (ORDER BY OrderDate) AS 'RowNumber'
    FROM Sales.SalesOrderHeader 
) 
SELECT * 
FROM OrderedOrders 
WHERE RowNumber BETWEEN 50 AND 60;
Run Code Online (Sandbox Code Playgroud)