限制 Ingres 选择查询中检索的行数

Posted

技术标签:

【中文标题】限制 Ingres 选择查询中检索的行数【英文标题】:Restrict number of rows retrieved in Ingres select query 【发布时间】:2009-07-03 09:36:59 【问题描述】:

我想知道是否有办法在 Ingres 的选择查询中选择后续的一堆行。比如前500行可以通过select first 500 from tablename来选择,但是如果我想选择第501到1000行,有什么办法吗?

【问题讨论】:

【参考方案1】:

您可以通过以下方式使用 OFFSET 子句:

SELECT col_name 
FROM table 
WHERE col_name = 'value' 
OFFSET m FETCH FIRST n ROWS ONLY

例如

SELECT *
FROM table  
OFFSET 501 FETCH FIRST 500 ROWS ONLY

【讨论】:

【参考方案2】:

你可以使用:

SELECT FIRST 10 * FROM table

SELECT FIRST 10 field1, field2 FROM table

我在 Ingres 9.2 中对其进行了测试,它可以正常工作

另请参阅: How to limit result set size for arbitrary query in Ingres?

【讨论】:

谢谢阿德里安。我们明年将升级到 Ingres9.2,这样我就可以让它工作了。【参考方案3】:
Select top 1000 * from table;

在 10.0 中完美运行

【讨论】:

【参考方案4】:

您可以尝试使用rownum var: 限制行号:

SELECT * from TABLE
WHERE rownum <=500

我尚未针对您的问题对其进行测试,但它应该可以正常工作:

SELECT * from TABLE
WHERE rownum >500
AND rownum <= 1000

【讨论】:

Ingres 没有 rownum 列。有一个隐藏的 tid 列,但包含的值基于页码及其在页面中的位置。

以上是关于限制 Ingres 选择查询中检索的行数的主要内容,如果未能解决你的问题,请参考以下文章

使用 Fill in ADOMD 限制检索的行数

限制 Kettle 的 mongodb 输入中的行数

限制 SQL 查询中每个 id 的行数 [重复]

如何限制查询中返回的组数,而不是 Oracle 中的行数

ODBC 连接使用 php 与 ingres 连接

SQL CE:限制查询中返回的行