IF (Snowflakeスクリプト)

IF ステートメントは、条件が満たされた場合にステートメントのセットを実行する方法を提供します。

分岐構造の詳細については、 分岐構造の操作 をご参照ください。

注釈

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

構文

IF ( <condition> ) THEN
    <statement>;
    [ <statement>; ... ]
[
ELSEIF ( <condition> ) THEN
    <statement>;
    [ <statement>; ... ]
]
[
ELSE
    <statement>;
    [ <statement>; ... ]
]
END IF;
Copy

条件:

condition

BOOLEAN に評価される式。

statement

ステートメントは、次のいずれかになります。

  • 単一の SQL ステートメント(CALL を含む)。

  • 制御フローステートメント(例: ループ または 分岐 ステートメント)。

  • ネストされた ブロック

使用上の注意

  • キーワード THEN は必須です。

  • ELSEIF は、1つの単語です(スペースなし)。

  • END IF は、2つの単語です。

  • THEN または ELSE 句の後で、本文は BEGIN および END キーワードを許可しますが、本文に複数の statement が含まれている場合でも、それらは必須ではありません。

  • condition が NULL の場合は、 FALSE として扱われます。

ストアドプロシージャ内のSnowflakeスクリプト IF ステートメントの例を次に示します。

CREATE or replace PROCEDURE example_if(flag INTEGER)
RETURNS VARCHAR
LANGUAGE SQL
AS
$$
BEGIN
    IF (FLAG = 1) THEN
        RETURN 'one';
    ELSEIF (FLAG = 2) THEN
        RETURN 'two';
    ELSE
        RETURN 'Unexpected input.';
    END IF;
END;
$$
;
Copy

次に、ストアドプロシージャを呼び出すコマンドと出力を示します。

CALL example_if(3);
+-------------------+
| EXAMPLE_IF        |
|-------------------|
| Unexpected input. |
+-------------------+
Copy