BREAK (Snowflake Scripting)

BREAK (或 EXIT)终止循环。

有关终止循环的更多信息,请参阅 终止循环

备注

Snowflake Scripting 结构仅在 Snowflake Scripting 区块 内有效。

另请参阅:

CONTINUE

语法

{ BREAK | EXIT } [ <label> ] ;
Copy

其中:

label

可选标签。如果指定了标签,BREAK 将跳转到标签后面的语句。

可以使用该标签来突破嵌套循环或嵌套分支的多个级别。

使用说明

  • BREAKEXIT 是同义的。

  • 如果循环嵌入在另一个循环中,不仅可以退出当前循环,还可以通过将封闭循环的标签作为 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;
Copy

Note: If you use Snowflake CLI, SnowSQL, the Classic Console, or the execute_stream or execute_string method in Python Connector code, use this example instead (see Using Snowflake Scripting in Snowflake CLI, SnowSQL, and Python Connector):

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;
$$;
Copy
+-----------------+
| anonymous block |
|-----------------|
|               1 |
+-----------------+
语言: 中文