使用条件逻辑¶
Snowflake Scripting 支持以下条件逻辑的分支结构:
IF-THEN-ELSEIF-ELSE
CASE
IF 语句¶
在 Snowflake Scripting 中,如果使用 IF 语句满足条件,则可以执行一组语句。
IF 语句的语法为:
在 IF 语句中:
如果需要指定其他条件,请为每个条件添加一个 ELSEIF 子句。
要指定在所有条件计算结果均不为 TRUE 时执行的语句,请添加一个 ELSE 子句。
ELSEIF 和 ELSE 子句是可选的。
以下是 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):
有关 IF 语句的完整语法和详细信息,请参阅 IF (Snowflake Scripting)。
有关使用 IF 语句的更多示例,请参阅:
Snowflake Scripting 的常见用例示例 – 根据循环中的 IF 条件执行 SQL 语句。
EXCEPTION – 根据 IF 条件提出异常。
CASE 语句¶
CASE 语句的行为与 IF 语句类似,但提供了一种更简单的方法来指定多个条件。
Snowflake Scripting 支持两种形式的 CASE 语句:
接下来的章节将介绍如何使用这些不同的表单。
备注
Snowflake 支持 Snowflake Scripting 之外的关键字 CASE 的其他用法(例如条件表达式 CASE)。
简单 CASE 语句¶
在一个简单 CASE 语句中,您可以为给定表达式的不同可能值定义不同的分支(WHEN 子句)。
简单 CASE 语句的语法为:
Snowflake 执行 value_n_of_expression 与 expression_to_match 的值匹配的第一个分支。
例如,假设您要根据 expression_to_evaluate 变量的值执行不同的语句。对于此变量的每个可能值(例如 value a、value b 等),您可以定义 WHEN 子句来指定要执行的语句:
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):
有关 CASE 语句的完整语法和详细信息,请参阅 CASE (Snowflake Scripting)。
搜索的 CASE 语句¶
在搜索的 CASE 语句中,为每个分支(WHEN 子句)指定不同的条件。Snowflake 执行表达式计算结果为 TRUE 的第一个分支。
搜索的 CASE 语句的语法为:
例如,当您执行以下 CASE 语句时,返回值为 a is x,因为该分支是表达式计算结果为 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):
有关 CASE 语句的完整语法和详细信息,请参阅 CASE (Snowflake Scripting)。