IF (Script Snowflake)

Uma instrução IF fornece uma forma de executar um conjunto de instruções se uma condição for atendida.

Para obter mais informações sobre construções de ramificações, consulte Como trabalhar com construções de ramificação.

Nota

Este constructo do Script Snowflake só é válido dentro de um bloco do Script Snowflake.

Sintaxe

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

Onde:

condition

Uma expressão que avalia como um BOOLEAN.

statement

Uma instrução pode ser qualquer uma das seguintes opções:

  • Uma única instrução SQL (incluindo CALL).

  • Uma instrução de fluxo de controle (ex.: instrução de looping ou ramificação).

  • Um bloco aninhado.

Notas de uso

  • A palavra-chave THEN é necessária.

  • ELSEIF é uma palavra (sem espaços).

  • END IF são duas palavras.

  • Após cada cláusula THEN ou ELSE, o corpo permite as palavras-chave BEGIN e END, mas não as exige, mesmo que o corpo contenha mais de uma statement.

  • Se condition for NULL, então ele será tratado como FALSE.

Exemplos

Aqui está um exemplo de uma instrução de Script Snowflake IF dentro de um procedimento armazenado:

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

Aqui está o comando para chamar o procedimento armazenado, juntamente com a saída:

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