Como trabalhar com lógica condicional¶
O Script Snowflake oferece suporte às seguintes construções de ramificação para lógica condicional:
IF-THEN-ELSEIF-ELSE
CASE
Instruções IF¶
No Script Snowflake, você pode executar um conjunto de instruções se uma condição for satisfeita usando uma instrução IF.
A sintaxe para a instrução IF é:
Em uma instrução IF:
Se você precisar especificar condições adicionais, adicione uma cláusula ELSEIF para cada condição.
Para especificar as instruções a serem executadas quando nenhuma das condições for avaliada como TRUE, adicione uma cláusula ELSE.
As cláusulas ELSEIF e ELSE são opcionais.
A seguir, veja um exemplo simples de uma instrução IF:
Note: If you use Snowflake CLI, SnowSQL, the Classic Console, or the
execute_stream or execute_string method in Python Connector
code, use this example instead (see Using Snowflake Scripting in Snowflake CLI, SnowSQL, and Python Connector):
Para obter a sintaxe completa e detalhes sobre instruções IF, consulte IF (Script Snowflake).
Para obter mais exemplos que usam a instrução IF, consulte:
Exemplos de casos de uso comuns do Script Snowflake - Execute as instruções SQL com base nas condições de IF em loops.
BREAK, LOOP e Como trabalhar com loops - Execute as instruções BREAK para encerrar um loop com base nas condições de IF.
EXCEPTION – Forneça exceções com base em condições de IF.
Instruções CASE¶
Uma instrução CASE comporta-se de maneira semelhante a uma instrução IF, mas fornece uma maneira mais simples de especificar condições múltiplas.
O Script Snowflake oferece suporte para duas formas da instrução CASE:
As próximas seções explicam como usar essas diferentes formas.
Nota
O Snowflake oferece suporte para outros usos da palavra-chave CASE fora do Script Snowflake (por exemplo, a expressão condicional CASE).
Instruções CASE simples¶
Em uma instrução CASE simples, você define diferentes ramificações (cláusulas WHEN) para diferentes valores possíveis de uma determinada expressão.
A sintaxe para a instrução CASE simples é:
O Snowflake executa a primeira ramificação para a qual value_n_of_expression corresponde ao valor de expression_to_match.
Por exemplo, suponha que você queira executar instruções diferentes com base no valor da variável expression_to_evaluate. Para cada valor possível dessa variável (por exemplo, value a, value b, etc.), você pode definir uma cláusula WHEN que especifica a(s) instrução(ões) a ser(em) executada(s):
Note: If you use Snowflake CLI, SnowSQL, the Classic Console, or the
execute_stream or execute_string method in Python Connector
code, use this example instead (see Using Snowflake Scripting in Snowflake CLI, SnowSQL, and Python Connector):
Para obter a sintaxe completa e detalhes sobre instruções CASE, consulte CASE (Script Snowflake).
Instruções CASE pesquisadas¶
Na instrução CASE pesquisada, você especifica condições diferentes para cada ramificação (cláusula WHEN). O Snowflake executa a primeira ramificação para a qual a expressão é avaliada como TRUE.
A sintaxe da instrução pesquisada é CASE:
Por exemplo, quando você executa a seguinte instrução CASE, o valor retornado é a is x porqua esse ramificação é a primeira ramificação em que a expressão é avaliada como TRUE:
Note: If you use Snowflake CLI, SnowSQL, the Classic Console, or the
execute_stream or execute_string method in Python Connector
code, use this example instead (see Using Snowflake Scripting in Snowflake CLI, SnowSQL, and Python Connector):
Para obter a sintaxe completa e detalhes sobre instruções CASE, consulte CASE (Script Snowflake).