我有一个由主键(ID)和类型标识符(TYPE_ID)标识的异构数据表。我希望能够执行一个查询,该查询返回给定类型的一组范围,该范围分为偶数页面大小。例如,如果有10,000个类型为'1'的记录,并且我将页面大小指定为1000,则我希望返回10对数字,这些数字代表我可以在后续查询中的BETWEEN
子句中使用的值,以一次查询DB 1000记录。
我最初的尝试是这样的
select id, rownum from CONTENT_TABLE
where type_id = ? and mod(rownum, ?) = 0
但这是行不通的。
最佳答案
在返回选定的记录后,“评估”了rownum
评估选择查询的where clause
。因此,您需要
在另一个查询的rownum上选择。我给r作为rownum的别名:
select id from (
select
id,
rownum r
from
CONTENT_TABLE
where type_id = ?
)
where mod(r, ?) = 0
关于sql - 如何获得表中的第n行,或者如何将表的子集分成大小相等的集合或行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2694429/