繁体   English   中英

如何在多个星期的两个日期之间使用 CASE 语句创建自定义的“一年中的一周”?

[英]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表达式的每个分支都需要以WHENELSE关键字开头(后者最多只能出现一次,在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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM