BREAK (Snowflake Scripting)¶
BREAK
(或 EXIT
)终止循环。
有关终止循环的更多信息,请参阅 终止循环。
备注
本 Snowflake Scripting 结构仅在 Snowflake Scripting 区块 内有效。
- 另请参阅:
语法¶
{ BREAK | EXIT } [ <label> ] ;
其中:
label
可选标签。如果指定了标签,
BREAK
将跳转到标签后面的语句。可以使用该标签来突破嵌套循环或嵌套分支的多个级别。
使用说明¶
BREAK
和EXIT
是同义的。如果循环嵌入在另一个循环中,不仅可以退出当前循环,还可以通过将封闭循环的标签作为
BREAK
的一部分来退出封闭循环。有关示例,请参阅下面的示例部分。
示例¶
下面是一个使用 BREAK 不仅退出当前循环,还退出封闭循环的示例:
DECLARE i INTEGER; j INTEGER; BEGIN i := 1; j := 1; WHILE (i <= 4) DO WHILE (j <= 4) DO -- Exit when j is 3, even if i is still 1. IF (j = 3) THEN BREAK outer_loop; END IF; j := j + 1; END WHILE inner_loop; i := i + 1; END WHILE outer_loop; -- Execution resumes here after the BREAK executes. RETURN i; END;注意:如果您在 Python Connector 代码中使用 SnowSQL、Classic Console 或者
execute_stream
或execute_string
方法,请改用本示例(请参阅 在 SnowSQL、Classic Console 和 Python Connector 中使用 Snowflake Scripting):EXECUTE IMMEDIATE $$ DECLARE i INTEGER; j INTEGER; BEGIN i := 1; j := 1; WHILE (i <= 4) DO WHILE (j <= 4) DO -- Exit when j is 3, even if i is still 1. IF (j = 3) THEN BREAK outer_loop; END IF; j := j + 1; END WHILE inner_loop; i := i + 1; END WHILE outer_loop; -- Execution resumes here after the BREAK executes. RETURN i; END; $$;
以下是输出:
+-----------------+ | anonymous block | |-----------------| | 1 | +-----------------+