如何在 BigQuery 中将此旧版 SQL 转换为标准 SQL?

Posted

技术标签:

【中文标题】如何在 BigQuery 中将此旧版 SQL 转换为标准 SQL?【英文标题】:How can I translate this legacy SQL to standard SQL in BigQuery? 【发布时间】:2021-07-29 09:58:28 【问题描述】:

我需要将其翻译成 BigQuery。任何人都可以帮忙吗?谢谢

IF DATEDIFF('day',DATEADD('day',7,snapshot_date),TODAY(),'monday')>=1
THEN 1
END

这是我遇到的错误。

Google BigQuery 标准 SQL 数据库在执行时遇到错误 运行此查询。查询执行失败:- 语法错误:预期 "(" 但在 [2:25] 得到标识符 "DATEDIFF"

【问题讨论】:

【参考方案1】:

试试这个:

case when DATE_DIFF(DATE_ADD(snapshot_date, INTERVAL 7 DAY), CURRENT_DATE(), WEEK(MONDAY)) >= 1 then 1  end

【讨论】:

【参考方案2】:

试试这个 (docs):

IF(DATE_DIFF(DATE_ADD(snapshot_date, INTERVAL 7 DAY), CURRENT_DATE(), WEEK(MONDAY)) >= 1, 1, NULL)

【讨论】:

以上是关于如何在 BigQuery 中将此旧版 SQL 转换为标准 SQL?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 BigQuery 标准 SQL 中将时间戳转换为秒

如何将旧版 SQL BigQuery 转换为标准 SQL?

无法将 BigQuery 旧版 SQL 转换为 HAVING LEFT(...) 的标准 SQL

标准 sql 中的 bigquery 旧版 sql POSITION() 函数

BigQuery - 如何比较“日期”列(使用旧版 SQL)?

在 BigQuery/标准 SQL 中将 DATE 转换为 TIMESTAMP