2015-05-20 1 views
0

У Derby нет функции rownum?Простой способ выбрать первые несколько строк в дерби?

В оракуле я могу выбрать первые 3 строки, такие как следующие.

select * from a where rownum < 3 

В here они предлагают следующее. Но это утомительно.

SELECT * FROM (
    SELECT 
    ROW_NUMBER() OVER (ORDER BY key ASC) AS rownumber, 
    columns 
    FROM tablename 
) AS foo 
WHERE rownumber <= n 

ответ

0

Обратите внимание, что Derby также поддерживает FETCH FIRST синтаксис, как описано здесь: http://db.apache.org/derby/docs/10.11/ref/rrefsqljoffsetfetch.html#rrefsqljoffsetfetch

Дерби намеренно избегает нестандартных конструкций SQL. Поскольку вы изучаете, использование такого конкретного поставщика может быть удобным, но оно также может привести к не переносным приложениям.

Преимущество использования стандартного синтаксиса SQL заключается в том, что у вас меньше проблем с совместимостью при перемещении приложения в другую реализацию СУБД. Сильная приверженность Derby стандартным SQL может принести пользу в этом случае: если вы разрабатываете свое приложение с использованием СУБД, например, Derby, вы, вероятно, будете успешно развертывать свое приложение на другой, менее стандартной СУБД.

+0

Выбрав первый вариант строки, я хочу. Но что, если я хочу выбрать еще две строки? – verystrongjoe

+1

Вы можете получить 3 строки, например, с помощью «fetch first 3 rows». Или, если вы забираете 10 строк в первый раз, тогда хотите получить еще 10, сделайте «смещение 10 строк, выборку из следующих 10 строк». –

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