CONTINUE (Snowflakeスクリプト)¶
CONTINUE
(または ITERATE
)は、ループの反復で残りのステートメントをスキップし、ループの次の反復を開始します。
ループの現在の反復を終了する方法の詳細については、 ループを終了せずに反復を終了 をご参照ください。
注釈
この Snowflakeスクリプト 構造は、 Snowflakeスクリプトブロック 内でのみ有効です。
- こちらもご参照ください:
構文¶
{ CONTINUE | ITERATE } [ <label> ] ;
条件:
label
オプションのラベル。ラベルが指定されている場合、
CONTINUE
はループ内のラベルのある最初のステートメントから始まります。これを使用して、ネストされたループまたはネストされた分岐で複数レベル上に進むことができます。
使用上の注意¶
CONTINUE
とITERATE
は同義語です。ループが別のループに埋め込まれている場合は、現在のループだけでなく、
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;注: 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; $$;
例を実行した結果は次のとおりです。
+-----------------+
| anonymous block |
|-----------------|
| 0 |
+-----------------+