OFFSET FETCH 子句
OFFSET 和 FETCH 允许您按部分检索数据。它们指定您希望通过单个查询获取的行块。
offset_row_count 或 fetch_row_count 的值可以是数字或字面常量。您可以省略 fetch_row_count;默认情况下,它等于 1。
OFFSET 指定在开始从查询结果集中返回行之前要跳过的行数。OFFSET n 跳过结果中的前 n 行。
支持负 OFFSET:OFFSET -n 跳过结果中的最后 n 行。
也支持分数 OFFSET:OFFSET n - 如果 0 < n < 1,则跳过结果的前 n * 100%。
示例
• OFFSET 0.1 - 跳过结果的前 10%。
注意
• 该分数必须是一个 Float64 数字,小于 1 且大于零。
• 如果计算结果是小数行数,则向上舍入到下一个整数。
FETCH 指定查询结果中可以包含的最大行数。
ONLY 选项用于返回紧随 OFFSET 忽略的行之后的行。在这种情况下,FETCH 是 LIMIT 子句的替代方案。例如,以下查询
与以下查询相同
WITH TIES 选项用于根据 ORDER BY 子句返回与结果集中最后一个位置并列的任何其他行。例如,如果 fetch_row_count 设置为 5,但另外两行与 ORDER BY 列中的第五行的值匹配,则结果集将包含七行。
注意
根据标准,如果同时存在,OFFSET 子句必须位于 FETCH 子句之前。
示例
输入表
使用 ONLY 选项
结果
使用 WITH TIES 选项
结果