如何从行范围内的 HSQL 中检索数据?

How to retrieve data from HSQL within a row range?

我曾与 oracle 合作,其中 select 查询特定行范围内的数据:

SELECT * from TABLE WHERE rownum>0 AND rownum<=10

在 HSQL 中对应的查询是什么?

HSQLDB 支持 LIMITOFFSET 关键字

select *
from some_table
limit 10
offset 2;

请注意,如果没有 order by 子句,limitoffset 就没有意义(对于 Oracle 也是如此)。

HSQLDB 也支持 ANSI SQL 标准 fetch first x rows 但这需要使用 order by

select *
from some_table
order by some_column
offset 2 rows
fetch first 10 rows only;

Oracle 从 12.1 开始也支持以上内容

详见手册
http://hsqldb.org/doc/2.0/guide/dataaccess-chapt.html#dac_slicing