CONTINUE (Snowflakeスクリプト)

CONTINUE (または ITERATE)は、ループの反復で残りのステートメントをスキップし、ループの次の反復を開始します。

ループの現在の反復を終了する方法の詳細については、 ループを終了せずに反復を終了 をご参照ください。

注釈

この Snowflakeスクリプト 構造は、 Snowflakeスクリプトブロック 内でのみ有効です。

こちらもご参照ください:

BREAK

構文

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

条件:

label

オプションのラベル。ラベルが指定されている場合、 CONTINUE はループ内のラベルのある最初のステートメントから始まります。

これを使用して、ネストされたループまたはネストされた分岐で複数レベル上に進むことができます。

使用上の注意

  • CONTINUEITERATE は同義語です。

  • ループが別のループに埋め込まれている場合は、現在のループだけでなく、 CONTINUE の一部として囲んでいるループのラベルを含めることで、囲んでいるループの最初のステートメントから開始できます。例については、以下の例セクションをご参照ください。

次のループは3回反復されます。 CONTINUE ステートメントの後のコードは実行されないため、 counter2 という名前の変数は3ではなく0になります。

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

注: SnowSQL または Classic Console を使用している場合は、代わりに次の例を使用します(SnowSQL および Classic Console でのSnowflakeスクリプトの使用 を参照)。

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