Перейти к основному содержимому
Перейти к основному содержимому

LIMIT Clause

LIMIT m позволяет выбрать первые m строк из результата.

LIMIT n, m позволяет выбрать m строк из результата, пропустив первые n строк. Синтаксис LIMIT m OFFSET n эквивалентен.

n и m должны быть неотрицательными целыми числами.

Если нет ORDER BY клаузулы, которая явно сортирует результаты, выбор строк для результата может быть произвольным и недетерминированным.

примечание

Количество строк в результате также может зависеть от настройки limit.

LIMIT ... WITH TIES Модификатор

Когда вы устанавливаете модификатор WITH TIES для LIMIT n[,m] и указываете ORDER BY expr_list, вы получите в результате первые n или n,m строк и все строки, где значения полей ORDER BY равны строке на позиции n для LIMIT n и m для LIMIT n,m.

Этот модификатор также может комбинироваться с ORDER BY ... WITH FILL модификатором.

Например, следующий запрос

SELECT * FROM (
    SELECT number%50 AS n FROM numbers(100)
) ORDER BY n LIMIT 0,5

возвращает

┌─n─┐
│ 0 │
│ 0 │
│ 1 │
│ 1 │
│ 2 │
└───┘

но после применения модификатора WITH TIES

SELECT * FROM (
    SELECT number%50 AS n FROM numbers(100)
) ORDER BY n LIMIT 0,5 WITH TIES

он возвращает другой набор строк

┌─n─┐
│ 0 │
│ 0 │
│ 1 │
│ 1 │
│ 2 │
│ 2 │
└───┘

поскольку строка номер 6 имеет то же значение "2" для поля n, что и строка номер 5.