2016-12-19 2 views
1

Я работал с оракулом, где для выбора данных в пределах определенного диапазона строк запроса является:Как получить данные из HSQL в диапазоне строк?

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

Что бы соответствующий запрос в HSQL?

+0

В какой версии вы используете? – GurV

+0

Посмотрите, работает ли [this] (http://stackoverflow.com/questions/6612862/hsqldb-rownum-compatibility-with-oracle) – GurV

+1

'rownum> 0' бесполезно в Oracle и если вы намереваетесь использовать, например, 'rownum> 5', тогда [не будет работать] (https://docs.oracle.com/database/121/SQLRF/pseudocolumns009.htm#SQLRF00255) в Oracle –

ответ

3

HSQLDB поддерживает устройства с LIMIT и OFFSET ключевое слово

select * 
from some_table 
limit 10 
offset 2; 

limit Обратите внимание, что и offset не имеет смысла без order by пункта (что верно для 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

+0

OP запросил диапазон – GurV

Смежные вопросы