CONTINUE (Snowflake Scripting)

CONTINUE (或 ITERATE)跳过循环迭代中的其余语句,并开始循环的下一次迭代。

有关终止循环的当前迭代的详细信息,请参阅 在不终止循环的情况下终止迭代

备注

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

另请参阅:

BREAK

语法

{ CONTINUE | ITERATE } [ <label> ] ;
Copy

其中:

label

可选标签。如果指定了标签,则 CONTINUE 将从循环中带有标签的第一条语句开始。

您可以使用此选项在嵌套循环或嵌套分支中继续更高的多个级别。

使用说明

  • CONTINUEITERATE 是同义的。

  • 如果循环嵌入在另一个循环中,通过将封闭循环的标签作为 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;
Copy

注意:如果您在 Python Connector 代码中使用 SnowSQLClassic Console 或者 execute_streamexecute_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;
$$;
Copy

下面是执行示例的输出:

+-----------------+
| anonymous block |
|-----------------|
|               0 |
+-----------------+
Copy
语言: 中文