跳到主要内容
跳到主要内容

LIMIT 子句

LIMIT m 允许从结果中选择前 m 行。

LIMIT n, m 允许在跳过前 n 行后,从结果中选择 m 行。 LIMIT m OFFSET n 语法是等效的。

nm 必须是非负整数。

如果没有显式排序结果的 ORDER BY 子句,则结果的行选择可能是任意的且不确定的。

注意

结果集中的行数也可能取决于 limit 设置。

LIMIT ... WITH TIES 修饰符

当您为 LIMIT n[,m] 设置 WITH TIES 修饰符并指定 ORDER BY expr_list 时,您将获得结果中的前 nn,m 行,以及所有与结果集中第 n 行(对于 LIMIT n)或第 m 行(对于 LIMIT n,m)具有相同 ORDER BY 字段值的行。

此修饰符还可以与 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 行的字段 n 的值 “2” 与第 5 行相同