FirebirdSQL logo

Примеры использования OFFSET и FETCH

Следующий запрос возвращает все строки кроме первых 10, упорядоченных по столбцу COL1:

SELECT *
FROM T1
ORDER BY COL1
OFFSET 10 ROWS

В этом примере возвращается первые 10 строк, упорядоченных по столбцу COL1:

SELECT *
FROM T1
ORDER BY COL1
FETCH FIRST 10 ROWS ONLY

Использование предложений OFFSET и FETCH в производной таблице, результат которой ограничивается ещё раз во внешнем запросе.

SELECT *
FROM (
  SELECT *
  FROM T1
  ORDER BY COL1 DESC
  OFFSET 1 ROW
  FETCH NEXT 10 ROWS ONLY
) a
ORDER BY a.COL1
FETCH FIRST ROW ONLY
См. также:

ROWS, "FIRST, SKIP".

FOR UPDATE [OF]

Синтаксис
SELECT ...
  FROM single_table
  [WHERE ...]
  [FOR UPDATE [OF <column-names>]]

Предложение FOR UPDATE не делает то, что от него ожидается.В настоящее время единственный эффект от его использования заключается лишь в отключении упреждающей выборки в буфер.

Tip

Это, вероятно, изменится в будущем: план состоит в том, чтобы проверять курсоры, отмеченные как FOR UPDATE, действительно ли они обновляемые, и отклонять позиционированные обновления и удаления для курсоров, оцененных как не обновляемый.

Предложение OF не делает ничего вообще.