CONTINUE (Snowflake Scripting)¶
CONTINUE
(或 ITERATE
)跳过循环迭代中的其余语句,并开始循环的下一次迭代。
有关终止循环的当前迭代的详细信息,请参阅 在不终止循环的情况下终止迭代。
备注
本 Snowflake Scripting 结构仅在 Snowflake Scripting 区块 内有效。
- 另请参阅:
语法¶
{ CONTINUE | ITERATE } [ <label> ] ;
其中:
label
可选标签。如果指定了标签,则
CONTINUE
将从循环中带有标签的第一条语句开始。您可以使用此选项在嵌套循环或嵌套分支中继续更高的多个级别。
使用说明¶
CONTINUE
和ITERATE
是同义的。如果循环嵌入在另一个循环中,通过将封闭循环的标签作为
CONTINUE
的一部分,不仅可以脱离当前循环,还可以从封闭循环中的第一条语句开始。有关示例,请参阅下面的示例部分。
示例¶
下面的循环迭代了 3 次。因为 CONTINUE
语句后的代码没有执行,所以名为 counter2
的变量将是 0 而不是 3。
DECLARE counter1 NUMBER(8, 0); counter2 NUMBER(8, 0); BEGIN counter1 := 0; counter2 := 0; WHILE (counter1 < 3) DO counter1 := counter1 + 1; CONTINUE; counter2 := counter2 + 1; END WHILE; RETURN counter2; END;注意:如果您在 Python Connector 代码中使用 SnowSQL、Classic Console 或者
execute_stream
或execute_string
方法,请改用本示例(请参阅 在 SnowSQL、Classic Console 和 Python Connector 中使用 Snowflake Scripting):EXECUTE IMMEDIATE $$ DECLARE counter1 NUMBER(8, 0); counter2 NUMBER(8, 0); BEGIN counter1 := 0; counter2 := 0; WHILE (counter1 < 3) DO counter1 := counter1 + 1; CONTINUE; counter2 := counter2 + 1; END WHILE; RETURN counter2; END; $$;
下面是执行示例的输出:
+-----------------+
| anonymous block |
|-----------------|
| 0 |
+-----------------+