
fetch-子句
FL 500 取语句限制了可取行的数量。
取语句的语法
fetch子句描述
fetch子句设置可检索的最大行数。 它规定应用程序最多只检索 fetch-row-count 行,而不管中间结果表中可能有多少行(当未指定此子句时)。 尝试获取超出行数限制的行时,处理方式与正常数据结束时的处理方式相同。
- 最外层全选视图
- 实体化查询表的定义
取语句也可以在 SELECT INTO 语句中指定。
确定要检索的可预测的行集需要指定排序键的 ORDER BY 子句,以便唯一地标识中间结果表中每一行的排序顺序。 如果中间结果表包含某些行的重复排序键,那么这些行的顺序不是确定性的。 如果没有 ORDER BY 子句,那么中间结果表不在确定性顺序中。 如果中间结果表的顺序不确定,则检索到的行集是不可预测的。 如果同时指定了fetch子句和ORDER BY子句,则fetch子句将根据排序后的数据进行处理。
如果fullselect在FROM子句中包含SQL数据更改语句,则无论获取的行数限制如何,所有行都会被修改。
- 取行数
指定要检索的最大行数的常数或变量。 fetch-row-count 必须为正数或零。 如果值不是BIGINT类型,则将其转换为BIGINT类型。 fetch-row-count 不能为空值。
当fetch-clause被指定为prepare属性时, fetch-row-count 不能引用变量。
使用fetch-clause 与fetch-row-count常量 ,且该常量不大于最大整数,会影响子选择或全选择的查询优化,因为最多只会检索已知数量的行。
将结果表限制为指定的行数可以提高性能。 在某些情况下,数据库管理员会在确定指定的行数后停止处理查询。 如果偏移量子句还指定了偏移量行数的常量,则数据库管理器在确定何时停止处理时,也会考虑偏移量值的常量。
行访问控制可能会间接影响取语句,因为行访问控制会影响子选择或全选择中授权ID或角色可访问的行。 列访问控制不影响取语句。
注意:
- 语法替代方案:
- 关键字 FIRST 和 NEXT 可以互换使用。 结果不变;但是,在使用偏移子句时,使用关键字NEXT通常更易读。
- 关键字 ROW 和 ROWS 可以互换使用。 然而,使用ROWS的结果不变,但与1以外的行数相关联时,ROWS通常更易读。
- 为了与其他数据库产品使用的SQL兼容,支持以下替代方案。 这些备用项是非标准的,不应使用。
备用语法 等效语法 LIMIT x FETCH FIRST x ROWS ONLY LIMIT x OFFSET y OFFSET y ROWS FETCH NEXT x ROWS ONLY LIMIT y, x OFFSET y ROWS FETCH NEXT x ROWS ONLY

