【发布时间】:2009-07-03 09:36:59
【问题描述】:
我想知道是否有办法在 Ingres 的选择查询中选择后续的一堆行。比如前500行可以通过select first 500 from tablename来选择,但是如果我想选择第501到1000行,有什么办法吗?
【问题讨论】:
我想知道是否有办法在 Ingres 的选择查询中选择后续的一堆行。比如前500行可以通过select first 500 from tablename来选择,但是如果我想选择第501到1000行,有什么办法吗?
【问题讨论】:
您可以通过以下方式使用 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
【讨论】:
你可以使用:
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?
【讨论】:
Select top 1000 * from table;
在 10.0 中完美运行
【讨论】:
您可以尝试使用rownum var: 限制行号:
SELECT * from TABLE
WHERE rownum <=500
我尚未针对您的问题对其进行测试,但它应该可以正常工作:
SELECT * from TABLE
WHERE rownum >500
AND rownum <= 1000
【讨论】: