Клаузула OFFSET FETCH
OFFSET
и FETCH
позволяют вам извлекать данные порциями. Они указывают на блок строк, который вы хотите получить за один запрос.
Значение offset_row_count
или fetch_row_count
может быть числом или литеральной константой. Вы можете опустить fetch_row_count
; по умолчанию оно равно 1.
OFFSET
указывает количество строк, которые следует пропустить перед началом возврата строк из набора результатов запроса.
FETCH
указывает максимальное количество строк, которые могут быть в результате запроса.
Опция ONLY
используется для возврата строк, которые немедленно следуют за строками, опущенными с помощью OFFSET
. В этом случае FETCH
является альтернативой клаузуле LIMIT. Например, следующий запрос
идентичен запросу
Опция WITH TIES
используется для возврата любых дополнительных строк, которые совпадают с последним местом в наборе результатов в соответствии с клаузулой ORDER BY
. Например, если fetch_row_count
установлен в 5, но две дополнительные строки соответствуют значениям колонок ORDER BY
в пятой строке, набор результатов будет содержать семь строк.
Согласно стандарту, клаузула OFFSET
должна предшествовать клаузуле FETCH
, если обе они присутствуют.
Примеры
Входная таблица:
Использование опции ONLY
:
Результат:
Использование опции WITH TIES
:
Результат: