CASE (Exécution de scripts Snowflake)¶
Une instruction CASE
permet de spécifier plusieurs conditions.
Pour plus d’informations sur les « branching » standard, voir Travailler avec des constructions « branching ».
Note
Cette construction Exécution de scripts Snowflake n’est valable qu’à l’intérieur d’un bloc Exécution de scripts Snowflake.
Syntaxe¶
Simple instruction CASE :
CASE ( <expression_to_match> ) WHEN <expression> THEN <statement>; [ <statement>; ... ] [ WHEN ... ] [ ELSE <statement>; [ <statement>; ... ] ] END [ CASE ] ;
Où :
expression_to_match
L’expression à faire correspondre.
expression
Si la valeur de cette expression correspond à la valeur de
expression_to_match
, alors les instructions de cette clause sont exécutées.
Instruction CASE recherchée :
CASE WHEN <boolean_expression> THEN <statement>; [ <statement>; ... ] [ WHEN ... ] [ ELSE <statement>; [ <statement>; ... ] ] END [ CASE ] ;
Où :
boolean_expression
Si cette expression est évaluée à TRUE, alors les instructions de cette clause sont exécutées.
Notes sur l’utilisation¶
Si plus d’une branche de
CASE
correspond à l’expression, seule la première est utilisée.Lorsque vous comparez des expressions, NULL ne correspond pas à NULL. Si vous souhaitez tester explicitement les valeurs NULL, utilisez IS [ NOT ] NULL.
Exemples¶
Cet exemple illustre une simple instruction CASE
:
CREATE PROCEDURE case_demo_01(v VARCHAR) RETURNS VARCHAR LANGUAGE SQL AS BEGIN CASE (v) WHEN 'first choice' THEN RETURN 'one'; WHEN 'second choice' THEN RETURN 'two'; ELSE RETURN 'unexpected choice'; 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) :
CREATE PROCEDURE case_demo_01(v VARCHAR) RETURNS VARCHAR LANGUAGE SQL AS $$ BEGIN CASE (v) WHEN 'first choice' THEN RETURN 'one'; WHEN 'second choice' THEN RETURN 'two'; ELSE RETURN 'unexpected choice'; END CASE; END; $$ ;
Lorsque vous appelez cette procédure stockée, la procédure produit le résultat suivant :
CALL case_demo_01('second choice'); +--------------+ | CASE_DEMO_01 | |--------------| | two | +--------------+
Cet exemple illustre une instruction CASE
recherchée :
CREATE PROCEDURE case_demo_2(v VARCHAR) RETURNS VARCHAR LANGUAGE SQL AS BEGIN CASE WHEN v = 'first choice' THEN RETURN 'one'; WHEN v = 'second choice' THEN RETURN 'two'; ELSE RETURN 'unexpected choice'; 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) :
CREATE PROCEDURE case_demo_2(v VARCHAR) RETURNS VARCHAR LANGUAGE SQL AS $$ BEGIN CASE WHEN v = 'first choice' THEN RETURN 'one'; WHEN v = 'second choice' THEN RETURN 'two'; ELSE RETURN 'unexpected choice'; END CASE; END; $$ ;
Lorsque vous appelez cette procédure stockée, la procédure produit le résultat suivant :
CALL case_demo_2('none of the above'); +-------------------+ | CASE_DEMO_2 | |-------------------| | unexpected choice | +-------------------+