gpt4 book ai didi

sql - Snowflake 中 WHERE 子句中的 CASE

转载 作者:行者123 更新时间:2023-12-02 18:09:28 25 4
gpt4 key购买 nike

我正在尝试在雪花的 where 子句中执行 case 语句,但我不太确定应该如何去做。

我想要做的是,如果我当前的月份是一月,那么日期的 where 子句是在上一年开始和今天之间。如果不是,则日期的 where 子句将位于当年开始和今天之间。

WHERE 
CASE MONTH(CURRENT_DATE()) = 1 THEN DATE BETWEEN DATE_TRUNC(‘YEAR’, DATEADD(YEAR, -1, CURRENT_DATE())) AND CURRENT_DATE()
CASE MONTH(CURRENT_DATE()) != 1 THEN DATE BETWEEN DATE_TRUNC(‘YEAR’, CURRENT_DATE()) AND CURRENT_DATE()
END

感谢对此的任何帮助!

最佳答案

使用 CASE 表达式,如果当前月份是 1 月,则返回 -1;对于任何其他月份,则返回 0,这样您就可以得到其中 DATEADD() 是要在 DATE_TRUNC() 中使用的上一年或当前年份的日期:

WHERE DATE BETWEEN 
DATE_TRUNC('YEAR', DATEADD(YEAR, CASE WHEN MONTH(CURRENT_DATE()) = 1 THEN -1 ELSE 0 END, CURRENT_DATE()))
AND
CURRENT_DATE()

关于sql - Snowflake 中 WHERE 子句中的 CASE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72656626/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com