fetch-子句
fetch-clause 设置可检索的最大行数。
fetch-clause 设置可检索的最大行数。 它使数据库管理器知道应用程序不希望检索超过 fetch-row-count 行,而不管中间结果表中有多少行。 对超出 fetch-row-count 行的访存尝试的处理方式与正常数据结束方式相同。
不能在视图的最外层全查询中指定 fetch-clause 。
确定要检索的一组可预测行需要指定带有排序键的 ORDER BY 子句,该排序键唯一地标识中间结果表中每一行的排序顺序。 如果中间结果表包含某些行的重复排序键,那么行的顺序不是确定性的。 如果没有 ORDER BY 子句,那么中间结果表不具有确定性顺序。 如果中间结果表的顺序不是确定性的,那么检索的行集是不可预测的。 如果同时指定了 order-by-clause 和 fetch-clause ,那么将对有序数据处理 fetch-clause 。
- 获取行数
- 用于指定要检索的最大行数的表达式。 fetch-row-count 不得包含 scalar-fullselect,列引用,表引用,用户定义的函数引用或在检查约束中标识为受限的内置标量函数; 请参阅 check-constraint。 如果表达式的数据类型不是 BIGINT ,那么表达式的结果将强制转换为 BIGINT 值。 fetch-row-count 的值必须是正数或零。 它不能是空值。
将结果表限制为指定行数可提高性能。 在某些情况下,数据库管理器将在确定指定行数后停止处理查询。 如果还指定了 offset-clause ,那么数据库管理器在确定何时停止处理时还将考虑偏移量值。
如果全查询在 FROM 子句中包含 SQL 数据更改语句,那么将修改所有行,而不考虑要访存的行数限制。
行访问控制会间接影响 FETCH FIRST 子句,因为行访问控制会影响子查询的授权标识可访问的行。
注意
语法替代方法:
- 关键字 FIRST 和 NEXT 可以互换使用。 结果保持不变; 但是,当使用 offset-clause 时,使用关键字 NEXT 更容易读取。
- 支持以下内容以与其他数据库产品所使用的 SQL 兼容。 这些替代品是非标准的,不应使用。
备用语法 等效语法 限制 x 只获取前 x 行 限制 x 偏移 y 偏移 y 行 仅取回前 x 行 LIMIT y, x 偏移 y 行 仅取回前 x 行
