You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Snowflake中IF语句的条件部分是否可省略括号?

Snowflake Scripting中IF语句括号的使用规则

在Snowflake Scripting里,IF ( <condition> ) THEN和IF <condition> THEN这两种格式都是合法有效的,你可以根据个人习惯任选其一使用,两种写法都能被Snowflake正常解析执行。

比如你提供的代码示例中使用的是无括号的写法:

IF :DATE_FROM IS NULL THEN
    CASE period_value
        WHEN 'daily' THEN
            calculated_date_from := DATEADD(DAY, -1, CURRENT_DATE());
            calculated_date_to := calculated_date_from;
        WHEN 'weekly' THEN
            calculated_date_from := DATEADD(WEEK, -1, TRUNC(CURRENT_DATE(), 'WEEK'));
            calculated_date_to := DATEADD(DAY, 6, calculated_date_from);
        WHEN 'monthly' THEN
            calculated_date_from := DATEADD(MONTH, -1, TRUNC(CURRENT_DATE(), 'MONTH'));
            calculated_date_to := LAST_DAY(calculated_date_from);
        ELSE
            RAISE EXCEPTION 'Unsupported periodicity: %', period_row.period_value;
    END CASE;
ELSE
    calculated_date_from := :DATE_FROM;
    calculated_date_to := :DATE_TO;
END IF;

将其修改为带括号的写法也完全可行:

IF (:DATE_FROM IS NULL) THEN
    CASE period_value
        WHEN 'daily' THEN
            calculated_date_from := DATEADD(DAY, -1, CURRENT_DATE());
            calculated_date_to := calculated_date_from;
        WHEN 'weekly' THEN
            calculated_date_from := DATEADD(WEEK, -1, TRUNC(CURRENT_DATE(), 'WEEK'));
            calculated_date_to := DATEADD(DAY, 6, calculated_date_from);
        WHEN 'monthly' THEN
            calculated_date_from := DATEADD(MONTH, -1, TRUNC(CURRENT_DATE(), 'MONTH'));
            calculated_date_to := LAST_DAY(calculated_date_from);
        ELSE
            RAISE EXCEPTION 'Unsupported periodicity: %', period_row.period_value;
    END CASE;
ELSE
    calculated_date_from := :DATE_FROM;
    calculated_date_to := :DATE_TO;
END IF;

这两种写法在语法上没有功能区别,官方文档虽未特意明确提及,但实际使用中两种格式均被Snowflake支持。

内容的提问来源于stack exchange,提问作者Excorpion

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 11:12:02