Travailler avec des constructions « branching »¶
Exécution de scripts Snowflake prend en charge les constructions « branching » suivantes :
IF-THEN-ELSEIF-ELSE
CASE
Dans ce chapitre :
Instructions IF¶
Dans Exécution de scripts Snowflake, vous pouvez exécuter un ensemble d’instructions si une condition est remplie en utilisant une instruction IF.
La syntaxe de l’instruction IF
est la suivante :
IF (<condition>) THEN -- Statements to execute if the <condition> is true. [ ELSEIF ( <condition_2> ) THEN -- Statements to execute if the <condition_2> is true. ] [ ELSE -- Statements to execute if none of the conditions is true. ] END IF;
Dans une instruction IF
:
Si vous devez spécifier des conditions supplémentaires, ajoutez une clause
ELSEIF
pour chaque condition.Pour spécifier les instructions à exécuter si aucune des conditions n’est évaluée comme vraie, ajoutez une clause
ELSE
.Les clauses
ELSEIF
etELSE
sont facultatives.
Voici un exemple simple d’une instruction IF
:
BEGIN LET count := 1; IF (count < 0) THEN return 'negative value'; ELSEIF (count = 0) THEN return 'zero'; ELSE return 'positive value'; END IF; END;Remarque : si vous utilisez SnowSQL ou l”Classic Console, utilisez cet exemple à la place (voir Utilisation d’Exécution de scripts Snowflake dans SnowSQL et l”Classic Console) :
EXECUTE IMMEDIATE $$ BEGIN LET count := 1; IF (count < 0) THEN return 'negative value'; ELSEIF (count = 0) THEN return 'zero'; ELSE return 'positive value'; END IF; END; $$ ;
Pour une syntaxe complète et des détails sur les instructions IF, voir IF (Exécution de scripts Snowflake).
Instructions CASE¶
Une instruction CASE
se comporte de la même manière qu’une instruction IF
mais offre un moyen plus simple de spécifier des conditions multiples.
Exécution de scripts Snowflake prend en charge deux formes de l’instruction CASE
:
Les sections suivantes expliquent comment utiliser ces différentes formes.
Note
Snowflake prend en charge d’autres utilisations du mot-clé CASE
en dehors d’Exécution de scripts Snowflake (par exemple, l’expression conditionnelle CASE).
Instructions CASE simples¶
Dans une instruction CASE
simple, vous définissez différentes branches (clauses WHEN) pour différentes valeurs possibles d’une expression donnée.
La syntaxe de l’instruction CASE
simple est la suivante :
CASE ( <expression_to_match> ) WHEN <value_1_of_expression> THEN <statement>; [ <statement>; ... ] [ WHEN <value_2_of_expression> THEN <statement>; [ <statement>; ... ] ] ... -- Additional WHEN clauses for other possible values; [ ELSE <statement>; [ <statement>; ... ] ] END [ CASE ] ;
Snowflake exécute la première branche pour laquelle value_n_of_expression
correspond à la valeur de expression_to_match
.
Par exemple, supposons que vous vouliez exécuter différentes instructions, en fonction de la valeur de la variable expression_to_evaluate
. Pour chaque valeur possible de cette variable (par exemple value a
, value b
, etc.), vous pouvez définir une clause WHEN
qui spécifie la ou les instructions à exécuter :
DECLARE expression_to_evaluate VARCHAR DEFAULT 'default value'; BEGIN expression_to_evaluate := 'value a'; CASE (expression_to_evaluate) WHEN 'value a' THEN return 'x'; WHEN 'value b' THEN return 'y'; WHEN 'value c' THEN return 'z'; WHEN 'default value' THEN return 'default'; ELSE return 'other'; END; END;Remarque : si vous utilisez SnowSQL ou l”Classic Console, utilisez cet exemple à la place (voir Utilisation d’Exécution de scripts Snowflake dans SnowSQL et l”Classic Console) :
EXECUTE IMMEDIATE $$ DECLARE expression_to_evaluate VARCHAR DEFAULT 'default value'; BEGIN expression_to_evaluate := 'value a'; CASE (expression_to_evaluate) WHEN 'value a' THEN return 'x'; WHEN 'value b' THEN return 'y'; WHEN 'value c' THEN return 'z'; WHEN 'default value' THEN return 'default'; ELSE return 'other'; END; END; $$ ;
Pour une syntaxe complète et des détails sur les instructions CASE
, voir CASE (Exécution de scripts Snowflake).
Instructions CASE recherchées¶
Dans l’instruction CASE
recherchée, vous spécifiez différentes conditions pour chaque branche (clause WHEN
). Snowflake exécute la première branche pour laquelle l’expression correspond à TRUE.
La syntaxe de l’instruction CASE
recherchée est la suivante :
CASE WHEN <condition_1> THEN <statement>; [ <statement>; ... ] [ WHEN <condition_2> THEN <statement>; [ <statement>; ... ] ] ... -- Additional WHEN clauses for other possible conditions; [ ELSE <statement>; [ <statement>; ... ] ] END [ CASE ] ;
Par exemple, lorsque vous exécutez l’instruction CASE suivante, la valeur renvoyée est a is x
car cette branche est la première branche dans laquelle l’expression correspond à TRUE :
DECLARE a VARCHAR DEFAULT 'x'; b VARCHAR DEFAULT 'y'; c VARCHAR DEFAULT 'z'; BEGIN CASE WHEN a = 'x' THEN return 'a is x'; WHEN b = 'y' THEN return 'b is y'; WHEN c = 'z' THEN return 'c is z'; ELSE return 'a is not x, b is not y, and c is not z'; END; END;Remarque : si vous utilisez SnowSQL ou l”Classic Console, utilisez cet exemple à la place (voir Utilisation d’Exécution de scripts Snowflake dans SnowSQL et l”Classic Console) :
EXECUTE IMMEDIATE $$ DECLARE a VARCHAR DEFAULT 'x'; b VARCHAR DEFAULT 'y'; c VARCHAR DEFAULT 'z'; BEGIN CASE WHEN a = 'x' THEN return 'a is x'; WHEN b = 'y' THEN return 'b is y'; WHEN c = 'z' THEN return 'c is z'; ELSE return 'a is not x, b is not y, and c is not z'; END; END; $$ ;
Pour une syntaxe complète et des détails sur les instructions CASE
, voir CASE (Exécution de scripts Snowflake).