[英]How can I create a custom 'Week of Year' using a CASE Statement BETWEEN two dates over multiple weeks?
我目前正在尝试在 Data Studio 中创建一个自定义的“年度周”,从周六开始到周五结束。 经过许多其他尝试后,我现在尝试使用 CASE 语句。
CASE 语句是:
CASE
WHEN
date BETWEEN DATE(2022,07,30) AND DATE(2022,08,05)
THEN "WEEK 29"
DATE BETWEEN DATE(2022,08,06) AND DATE(2022,08,12)
THEN "WEEK 30"
DATE BETWEEN DATE(2022,08,13) AND DATE(2022,08,19)
THEN "WEEK 31"
ELSE NULL
END
然而,这会导致“语法错误:应为“ELSE”或“END”但得到的是“Date”。
我想这是一个双重问题,但以上是否意味着我无法多次使用 CASE 语句,例如只能将其应用于第 29 周而不是未来几周?
第二个是,我是否让这变得比需要的更难,并且有更简单的方法来创建从星期六开始到星期五结束的自定义“一年中的一周”?
任何帮助表示赞赏!
SQL 中CASE
表达式的每个分支都需要以WHEN
或ELSE
关键字开头(后者最多只能出现一次,在CASE
表达式的末尾)。 尝试使用这个版本:
CASE WHEN date BETWEEN DATE(2022,07,30) AND DATE(2022,08,05)
THEN 'WEEK 29'
WHEN DATE BETWEEN DATE(2022,08,06) AND DATE(2022,08,12)
THEN 'WEEK 30'
WHEN DATE BETWEEN DATE(2022,08,13) AND DATE(2022,08,19)
THEN 'WEEK 31'
ELSE NULL -- optional
END
请注意,您的CASE
表达式中的ELSE
分支在这里是可选的,因为默认的 else 值为NULL
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.