LIMIT 子句
LIMIT 子句控制查询结果返回的行数。
基本语法
选择前几行
返回结果中的前 m 行,或者当记录数少于 m 时返回所有记录。
替代的 TOP 语法(与 MS SQL Server 兼容)
这等效于 LIMIT m,可用于与 Microsoft SQL Server 查询兼容。
带偏移量的选择
跳过前 n 行,然后返回接下来的 m 行。
在两种形式中,n 和 m 必须是非负整数。
负限制
使用负值从结果集的末尾选择行
| 语法 | 结果 |
|---|---|
LIMIT -m | 最后 m 行 |
LIMIT -m OFFSET -n | 跳过最后 n 行后的最后 m 行 |
LIMIT m OFFSET -n | 跳过最后 n 行后的前 m 行 |
LIMIT -m OFFSET n | 跳过前 n 行后的最后 m 行 |
LIMIT -n, -m 语法等效于 LIMIT -m OFFSET -n。
分数限制
使用 0 到 1 之间的十进制值选择行百分比
| 语法 | 结果 |
|---|---|
LIMIT 0.1 | 前 10% 的行 |
LIMIT 1 OFFSET 0.5 | 中位数行 |
LIMIT 0.25 OFFSET 0.5 | 第三四分位数(跳过前 50% 的行后的 25% 的行) |
注意
- 分数必须是大于 0 且小于 1 的 Float64 值。
- 分数行数将四舍五入到下一个整数。
组合限制类型
您可以将标准整数与分数或负偏移量混合使用
LIMIT ... WITH TIES
WITH TIES 修饰符包含与限制中最后一行具有相同 ORDER BY 值的其他行。
使用 WITH TIES 时,将包含所有匹配最后一个值的行
包含第 6 行,因为它具有与第 5 行相同的值 (2)。
注意
WITH TIES 不支持负限制。
可以将此修饰符与 ORDER BY ... WITH FILL 修饰符结合使用。
注意事项
非确定性结果: 如果没有 ORDER BY 子句,则返回的行可能是任意的,并且在查询执行之间可能有所不同。
服务器端限制: 返回的行数也可能受到 limit 设置的影响。
另请参阅
- LIMIT BY — 限制每组值的行数,对于获取每个类别的前 N 个结果很有用。