offset-子句
offset-clause 设置在检索任何行之前要跳过的行数。 它让数据库管理器知道,在跳过 offset-row-count 行之前,应用程序不希望开始检索行。 如果未指定 offset-clause ,那么缺省值等同于 OFFSET 0 ROWS。 如果 offset-row-count 指定的行数多于中间结果表中的行数,那么会将中间结果表视为空结果表。
- 偏移行数
- 一个表达式,用于指定在检索任何行之前要跳过的行数。 offset-row-count 不得包含 scalar-fullselect,列引用,表引用,用户定义的函数引用或在检查约束中标识为受限的内置标量函数; 请参阅 check-constraint。 如果表达式的数据类型不是 BIGINT ,那么表达式的结果将强制转换为 BIGINT 值。 offset-row-count 的值必须是正数或零。 它不能是空值。
要确定要跳过的一组可预测行,需要指定带有排序键的 ORDER BY 子句,以唯一地标识中间结果表中每一行的排序顺序。 如果中间结果表包含某些行的重复排序键,那么行的顺序不是确定性的。 如果没有 ORDER BY 子句,那么中间结果表不具有确定性顺序。 如果中间结果表的顺序不是确定性的,那么跳过的行集是不可预测的。
不能在视图的最外层全查询中指定 offset-clause 。
如果全查询在 FROM 子句中包含 SQL 数据更改语句,那么将修改所有行,而不考虑要跳过的行数。
注意
select-list 限制: 包含 offset-clause 的全查询的 select-list 不得包含 NEXT VALUE 序列表达式,也不得包含非确定性函数, 外部操作或修改 SQL 数据。
语法替代方法: 请参阅与 fetch-clause 关联的 Notes 条目以获取替代语法,以设置在指定要检索的最大行数时要跳过的行数。
