IF (Snowflake Scripting)

IF 语句提供一种在满足条件时执行一组语句的方法。

有关分支结构的更多信息,请参阅 使用条件逻辑

备注

Snowflake Scripting 结构仅在 Snowflake Scripting 区块 内有效。

语法

IF ( <condition> ) THEN
    <statement>;
    [ <statement>; ... ]
[
ELSEIF ( <condition> ) THEN
    <statement>;
    [ <statement>; ... ]
]
[
ELSE
    <statement>;
    [ <statement>; ... ]
]
END IF;
Copy

其中:

condition

计算结果为 BOOLEAN 的表达式。

statement

语句可以是以下任一语句:

  • 单个 SQL 语句(包括 CALL)。

  • 控制流语句(例如 循环 语句或 分支 语句)。

  • 嵌套 区块

使用说明

  • 关键字 THEN 是必需的。

  • ELSEIF 是一个单词(没有空格)。

  • END IF 是两个单词。

  • 在每个 THENELSE 子句后,正文允许 BEGINEND 关键字,但不是必需的,即使正文包含多个 statement

  • 如果 condition 为 NULL,则将其视为 FALSE。

示例

以下是存储过程中的 Snowflake Scripting IF 语句示例:

CREATE OR REPLACE PROCEDURE example_if(flag INTEGER)
RETURNS VARCHAR
LANGUAGE SQL
AS
$$
BEGIN
  IF (FLAG = 1) THEN
    RETURN 'one';
  ELSEIF (FLAG = 2) THEN
    RETURN 'two';
  ELSE
    RETURN 'Unexpected input.';
  END IF;
END;
$$
;
Copy

以下是调用存储过程的命令,以及输出:

CALL example_if(3);
Copy
+-------------------+
| EXAMPLE_IF        |
|-------------------|
| Unexpected input. |
+-------------------+

有关使用 IF 语句的更多示例,请参阅:

语言: 中文