FOR

当您希望保证循环的终止时,请使用 FOR 语句来初始化受控的(限定的)循环。FOR 语句使用表达式或范围运算符来为循环指定有限数量的迭代。

语法

Range

元素 描述 限制 语法
expression loop_var 相比较的值 必须与 loop_var 数据类型相匹配 表达式
increment_expr loop_var 增加的正值或负值。缺省为 1(如果 left_expr < right_expr),或者 -1 (如果 left_expr > right_expr 必须返回整数。不能返回 0 表达式
label 此循环的循环标签的名称 必须存在且在 SPL 例程中的标签名中必须是唯一的 标识符
left_expr 开始范围的表达式 值必须与 loop_var 的 SMALLINT 或 INT 数据类型相匹配,但是 left_expr 不能等于 right_expr 表达式
loop_var 确定指定循环次数的变量 必须在该语句块的作用域内定义 标识符
right_expr 范围中的结束表达式 left_expr 表达式

用法

数据库服务器在 FOR 语句执行之前计算所有表达式的值。如果其中一个或多个表达式是其值在循环期间更改的变量,则该更改对循环的迭代没有影响。

您可以将来自 SELECT 语句的输出用作表达式

loop_var 等于表达式列表或连接的范围中的每个元素的值,或当它遇到 EXIT FOR 语句时,FOR 循环终止。但如果在 FOR 语句的主体中的赋值尝试修改 loop_var 值,会发生错误。

相对于 left_exprright_expr 大小确定该范围是否按照正增量或负增量单步遍历:
  • 如果 left_expr < right_expr ,则增量为正。
  • 如果 left_expr > right_expr ,则增量为负。

如果未指定 increment_expr,则每一步的缺省大小为 1,由以上的规则决定是正或负。

1 请参阅 语句块
2 <<label>> 必须位于第一个 FOR 关键字的前面