Verwenden von Verzweigungen¶
Snowflake Scripting unterstützt die folgenden Verzweigungskonstrukte:
IF-THEN-ELSEIF-ELSE
CASE
Unter diesem Thema:
IF-Anweisungen¶
In Snowflake Scripting können Sie mit einer IF-Anweisung eine Bedingung prüfen und eine Menge von Anweisungen ausführen, wenn die Bedingung erfüllt ist.
Die Syntax für die IF
-Anweisung lautet:
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;
In der IF
-Anweisung:
Wenn Sie zusätzliche Bedingungen angeben müssen, fügen Sie für jede Bedingung eine
ELSEIF
-Klausel hinzu.Um die Anweisungen anzugeben, die ausgeführt werden sollen, wenn keine der Bedingungen erfüllt wird, fügen Sie eine
ELSE
-Klausel hinzu.Die
ELSEIF
- undELSE
-Klauseln sind optional.
Im Folgenden finden Sie ein einfaches Beispiel für eine IF
-Anweisung:
BEGIN LET count := 1; IF (count < 0) THEN return 'negative value'; ELSEIF (count = 0) THEN return 'zero'; ELSE return 'positive value'; END IF; END;Hinweis: Wenn Sie SnowSQL oder die klassische Weboberfläche verwenden, benutzen Sie stattdessen dieses Beispiel (siehe Verwenden von Snowflake Scripting in SnowSQL und über die klassische Weboberfläche):
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; $$ ;
Die vollständige Syntax und Einzelheiten zu IF-Anweisungen finden Sie unter IF (Snowflake Scripting).
CASE-Anweisungen¶
Eine CASE
-Anweisung verhält sich ähnlich wie eine IF
-Anweisung, bietet jedoch eine einfachere Möglichkeit zur Angabe mehrerer Bedingungen.
Snowflake Scripting unterstützt zwei Formen der CASE
-Anweisung:
In den nächsten Abschnitten wird erläutert, wie diese unterschiedlichen Formen verwendet werden:
Bemerkung
Snowflake unterstützt andere Verwendungen des Schlüsselworts CASE
außerhalb von Snowflake Scripting (z. B. den bedingten CASE-Ausdruck).
Einfache CASE-Anweisungen¶
In einer einfachen CASE
-Anweisung definieren Sie verschiedene Verzweigungen (WHEN-Klauseln) für verschiedene mögliche Werte eines bestimmten Ausdrucks.
Die Syntax für die einfache CASE
-Anweisung lautet:
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 führt den ersten Zweig aus, bei dem value_n_of_expression
mit dem Wert von expression_to_match
übereinstimmt.
Angenommen, dass Sie je nach dem Wert der Variablen expression_to_evaluate
verschiedene Anweisungen ausführen möchten. Für jeden möglichen Wert dieser Variablen (z. B. value a
, value b
usw.) können Sie eine WHEN
-Klausel definieren, die die auszuführenden Anweisungen angibt:
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;Hinweis: Wenn Sie SnowSQL oder die klassische Weboberfläche verwenden, benutzen Sie stattdessen dieses Beispiel (siehe Verwenden von Snowflake Scripting in SnowSQL und über die klassische Weboberfläche):
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; $$ ;
Die vollständige Syntax und Einzelheiten zu CASE
-Anweisungen finden Sie unter CASE (Snowflake Scripting).
Durchsuchte CASE-Anweisungen¶
In der durchsuchten (searched) CASE
-Anweisung geben Sie für jede Verzweigung (WHEN
-Klausel) unterschiedliche Bedingungen an. Snowflake führt den ersten Zweig aus, für den der Ausdruck TRUE ergibt.
Die Syntax für die durchsuchte CASE
-Anweisung lautet:
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 ] ;
Wenn Sie beispielsweise die folgende CASE-Anweisung ausführen, ist der zurückgegebene Wert a is x
, da dieser Zweig der erste Zweig ist, in dem der Ausdruck TRUE ergibt:
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;Hinweis: Wenn Sie SnowSQL oder die klassische Weboberfläche verwenden, benutzen Sie stattdessen dieses Beispiel (siehe Verwenden von Snowflake Scripting in SnowSQL und über die klassische Weboberfläche):
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; $$ ;
Die vollständige Syntax und Einzelheiten zu CASE
-Anweisungen finden Sie unter CASE (Snowflake Scripting).