Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 12.0.1 » SQL Anywhere 服务器 - SQL 的用法 » 查询和修改数据 » 对查询结果进行汇总、分组和排序 » ORDER BY 子句:对查询结果进行排序

 

SELECT、UPDATE 和 DELETE 查询块中的行限制子句

FIRST、TOP 和 LIMIT 子句允许您返回、更新或者删除满足 WHERE 子句的行的子集。可以在任何包含 ORDER BY 子句的 SELECT 查询块中使用 FIRST、TOP 和 LIMIT 子句。也可以在 DELETE 和 UPDATE 查询块中使用 FIRST 和 TOP 子句。

FIRST、TOP 和 LIMIT 子句是行限制子句,它们有以下语法:

row-limitation-option-1 :
FIRST | TOP { ALL | limit-expression } [ START AT startat-expression ]
row-limitation-option-2 :
LIMIT { [ offset-expression, ] limit-expression | limit-expression OFFSET offset-expression }
limit-expression : simple-expression
startat-expression : simple-expression
offset-expression : simple-expression
simple-expression :
integer
| variable
| ( simple-expression )
| ( simple-expression { + | - | * } simple-expression )

只能为 SELECT 子句指定一个行限制子句。指定这些子句时,需要使用 ORDER BY 子句来按照有意义的方式对行进行排序。

  • row-limitation-option-1   这种类型的子句可以与 SELECT、UPDATE 或 DELETE 查询块一起使用。TOP 和 START AT 参数可以是主机变量的简单算术表达式、整型常量或整型变量。TOP 参数的计算结果必须是一个大于或等于 0 的值。START AT 参数的计算结果必须为一个大于或等于 0 的值。如果未指定 startat-expression,则缺省值为 1。

    表达式 limit-expression + startat-expression -1' 的计算结果必须是一个小于 9223372036854775807 = 2^64-1 的值。如果 TOP 的参数为 ALL,那么从 startat-expression 开始的行都将被返回。

    TOP limit-expression START AT startat-expression 子句等同于 LIMIT (startat-expression-1), limit-expression LIMIT limit-expression OFFSET (startat-expression-1)

  • row-limitation-option-2   这种类型的子句只能使用在 SELECT 查询块中。LIMIT 和 OFFSET 参数可以是主机变量的简单算术表达式、整型常量或整型变量。LIMIT 参数的计算结果必须是一个大于等于 0 的值。OFFSET 参数的计算结果必须是一个大于等于 0 的值。如果未指定 offset-expression,则缺省值为 0。表达式 limit-expression + offset-expression 的计算结果必须是一个小于 9223372036854775807 = 2^64-1 的值。

行限制子句 LIMIT offset-expression, limit-expression 等效于 LIMIT limit-expression OFFSET offset-expression。这两个构造都等效于 TOP limit-expression START AT (offset-expression + 1)

缺省情况下,禁用 LIMIT 关键字。使用 reserved_keywords 选项可启用 LIMIT 关键字。

 示例
 另请参见