我想选择从x1到x2的范围。就像您可以选择最佳结果一样:
SELECT TOP X * FROM TABLE
SELECT TOP 5 * FROM tUsers
但我想选择中间结果。所以如果我想要结果10-20是否有办法查询?
SELECT 10-20 * FROM TABLE?
答案 0 :(得分:14)
使用SQL Server:
使用MySQL:
SELECT * FROM `your_table` LIMIT 10, 20
使用Oracle:
SELECT * FROM `your_table` WHERE rownum >= 10 and rownum < 20;
使用PostgreSQL:
SELECT * FROM `your_table` LIMIT 20 OFFSET 10
`your_table`必须替换为您的真实表名
答案 1 :(得分:4)
在SQL Server 2005或更高版本中,您可以使用CTE
和ROW_NUMBER
函数:
WITH TblCte as
(
SELECT *
,ROW_NUMBER() OVER (ORDER BY OrderCol) RowNumber
FROM Table
)
SELECT *
FROM TblCte
WHERE RowNumber between 10 and 20
在SQL Server 2000或更低版本中,它非常困难且效率低下: http://social.msdn.microsoft.com/Forums/en-IE/transactsql/thread/e92d9b03-42ad-4ab9-9211-54215e7b9352
答案 2 :(得分:0)
在mysql中,这是
SELECT * FROM table LIMIT 10,20
答案 3 :(得分:-2)
你在使用什么数据库?如果您使用的是Oracle,请尝试
where rownum >= 10 and rownum < 20;