我知道 TOP 可以返回前 10% 的行结果,但是我将如何获得下一个 10%?我正在尝试分解由于内存不足(java.lang.OutOfMemoryError)而崩溃的查询,并希望返回前 10% 的结果,然后对其进行编辑,使其返回下一个 10%,依此类推。我正在使用 SQL Anywhere 12。
我知道 TOP 可以返回前 10% 的行结果,但是我将如何获得下一个 10%?我正在尝试分解由于内存不足(java.lang.OutOfMemoryError)而崩溃的查询,并希望返回前 10% 的结果,然后对其进行编辑,使其返回下一个 10%,依此类推。我正在使用 SQL Anywhere 12。
一个想法...
如果第一批行按列排序,则在第二个查询中使用最大/最后一行作为附加的“where”子句。
例如,假设第一个查询拉回了前 100 个 ID(按 ID 排序): ID = 1..100
对于第二个查询,您可以添加一个额外的“where”子句来(有效地)跳过前 100 个 ID,例如:
select top 100 ID from ... where ... and ID >100 ... order by ID
.