选择范围内的100条记录

时间:2012-10-31 13:02:48

标签: sql tsql

假设我有一张学生表,其中有1000条记录。

我想写一个应该只选择100条记录的查询,但我应该能够定义范围。

Ex. 100 records showing from 501 to 600
or 100 records showing from 101 to 200

P.S。是!有一个标识列,但它由随机数组成。

感谢您的帮助。

3 个答案:

答案 0 :(得分:1)

对SQL Server使用 TOP[docs]

SELECT TOP 100 *
FROM tableName
WHERE columnName BETWEEN 0 AND 100

<击>

<击>

但是在MySQL的LIMIT

SELECT *
FROM tableName
WHERE col BETWEEN 0 AND 100
LIMIT 100

<击>

更新1

WITH sampleRec
AS
(
    SELECT column1, col2, col3,
           ROW_NUMBER() OVER (ORDER BY colName) rn
    FROM yourTableName
)
SELECT column1, col2, col3
FROM sampleRec
WHERE rn BETWEEN 1 AND 100

答案 1 :(得分:1)

如果您使用的是MySQL,请使用LIMIT命令。

SELECT * FROM MyTable LIMIT X,Y

其中X是您的开始记录,Y是记录数。 所以对于你的501到600你会做LIMIT 501,100。

这可能适用于其他SQL版本 - 只需查看系统的LIMIT命令。

答案 2 :(得分:1)

这应该这样做。

SELECT a.* FROM (
     SELECT Row_Number() OVER(ORDER BY table.MySortCol) as RowNum,
     table.* -- columns you need
     FROM table
) a
WHERE a.RowNum between 1 and 100

即使您在表上没有序列ID,这也会为您提供一致的结果集,因此您可以执行有意义的分页或者您拥有的内容。