SQL选择返回范围的查询

Spi*_*idy 5 sql sql-server

可能重复:
MS SQL Server中的行偏移

我想选择从x1到x2的范围.就像你可以选择最佳结果一样:

SELECT TOP X * FROM TABLE

SELECT TOP 5 * FROM tUsers
Run Code Online (Sandbox Code Playgroud)

但我想选择中间结果.所以如果我想要结果10-20是否有办法查询?

SELECT 10-20 * FROM TABLE?
Run Code Online (Sandbox Code Playgroud)

San*_*nda 14

使用SQL Server:

SQL Server中的行偏移量

使用MySQL:

SELECT * FROM `your_table` LIMIT 10, 20
Run Code Online (Sandbox Code Playgroud)

使用Oracle:

SELECT * FROM `your_table` WHERE rownum >= 10 and rownum < 20;
Run Code Online (Sandbox Code Playgroud)

使用PostgreSQL:

SELECT * FROM `your_table` LIMIT 20 OFFSET 10
Run Code Online (Sandbox Code Playgroud)

`your_table`必须替换为您的真实表名


pco*_*fre 5

在 SQL Server 2005 或更高版本中,您可以使用 aCTEROW_NUMBER函数:

WITH TblCte as
(
SELECT  *
        ,ROW_NUMBER() OVER (ORDER BY OrderCol) RowNumber
FROM    Table
)
SELECT  *
FROM    TblCte
WHERE   RowNumber between 10 and 20
Run Code Online (Sandbox Code Playgroud)

在 SQL Server 2000 或更低版本中,它非常困难且效率低下:http : //social.msdn.microsoft.com/Forums/en-IE/transactsql/thread/e92d9b03-42ad-4ab9-9211-54215e7b9352