Секция LIMIT
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