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

Oracle转BigQuery:Decode语句转换求助

Oracle到BigQuery的查询语句转换方案

原Oracle代码逻辑分析

原代码通过decode函数根据last_updated_time+3后的星期几,计算FollowUP日期:

  • 当该日期是周六('D'返回7)、周日(1)、周一(2)时,FollowUP为原日期加5天
  • 当该日期是周二(3)时,FollowUP为原日期加4天
  • 其他情况,FollowUP为原日期加3天

转换后的BigQuery代码

CASE
  WHEN EXTRACT(DAYOFWEEK FROM DATE_ADD(c.last_updated_time, INTERVAL 3 DAY)) IN (1,2,7) THEN DATE_ADD(c.last_updated_time, INTERVAL 5 DAY)
  WHEN EXTRACT(DAYOFWEEK FROM DATE_ADD(c.last_updated_time, INTERVAL 3 DAY)) = 3 THEN DATE_ADD(c.last_updated_time, INTERVAL 4 DAY)
  ELSE DATE_ADD(c.last_updated_time, INTERVAL 3 DAY)
END AS FollowUP

转换说明

  1. 替代decode函数:BigQuery不支持Oracle的decode,改用标准SQL的CASE WHEN结构,逻辑更直观
  2. 星期几判断:用EXTRACT(DAYOFWEEK FROM 日期)替代Oracle的to_char(日期, 'D'),两者均返回1-7(周日=1,周六=7),逻辑完全匹配
  3. 日期加法:BigQuery用DATE_ADD(日期, INTERVAL N DAY)替代Oracle的日期+N写法,兼容DATE/TIMESTAMP类型

内容的提问来源于stack exchange,提问作者Zulfikar S Khan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 02:37:08