我需要的是从一个表中选择100个连续行,从某个定义的点开始,而不对数据进行排序。
据我所观察,插入到表中的数据不按顺序存储,而是由相同的SELECT
语句以相同的顺序检索。
我可以使用100个随机行,但是随机行并不有用,因为我总是需要从数据库中检索相同的数据,以便比较我正在开发的算法的结果。
我不想按任何字段对数据进行排序,因为否则我将偏袒所选的数据。
sql语句应该类似于:
SELECT field1, field2 FROM table1 WHERE row_number > 70000 LIMIT 100;
或者更好(因为我认为LIMIT
并不阻止数据库输出行号70000以上的每条记录):
SELECT field1, field2 FROM table1 WHERE row_number > 70000 AND row_number <= 70100;
我应该使用什么SELECT
语句?
发布于 2012-11-07 06:59:04
你可以尝试这样的方法
SELECT field1, field2
FROM table1
ORDER BY ctid
OFFSET x
LIMIT 100
;
正如我所评论的,如果没有排序,您就永远无法确定您得到的是相同的100行。这样,如果没有更新或删除相同的行,它们将按一定的顺序得到。
https://dba.stackexchange.com/questions/28322
复制