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 代码中使用 Snowflake CLI、SnowSQL、Classic Console 或者 execute_stream
或 execute_string
方法,请改用本示例(请参阅 在 Snowflake CLI、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 |
+-----------------+