我有一个 Oracle 查询,需要将其转换为 bigquery 查询并需要帮助,我不知道如何转换它,下面是我的 Oracle 代码
解码(to_char(c.last_updated_time +3, 'D') ,7 , c.last_updated_time +5 ,1 ,c.last_updated_time +5, 2, c.last_updated_time +5,3, c.last_updated_time +4, c.last_updated_time +3) FollowUP
我需要在bigquery查询中转换相同的内容,任何帮助都会被应用
尝试如下所示
SELECT
CASE
WHEN FORMAT_DATE('%u', DATE_ADD(c.last_updated_time, INTERVAL 3 DAY)) = '6' THEN DATE_ADD(c.last_updated_time, INTERVAL 5 DAY)
WHEN FORMAT_DATE('%u', DATE_ADD(c.last_updated_time, INTERVAL 3 DAY)) = '7' THEN DATE_ADD(c.last_updated_time, INTERVAL 5 DAY)
WHEN FORMAT_DATE('%u', DATE_ADD(c.last_updated_time, INTERVAL 3 DAY)) = '1' THEN DATE_ADD(c.last_updated_time, INTERVAL 5 DAY)
WHEN FORMAT_DATE('%u', DATE_ADD(c.last_updated_time, INTERVAL 3 DAY)) = '2' THEN DATE_ADD(c.last_updated_time, INTERVAL 4 DAY)
ELSE DATE_ADD(c.last_updated_time, INTERVAL 3 DAY)
END
请参阅下面的示例 - 您可以使用它进行测试
WITH data AS (
SELECT CURRENT_TIMESTAMP() AS last_updated_time
)
SELECT
CASE
WHEN FORMAT_DATE('%u', DATE_ADD(c.last_updated_time, INTERVAL 3 DAY)) = '6' THEN DATE_ADD(c.last_updated_time, INTERVAL 5 DAY)
WHEN FORMAT_DATE('%u', DATE_ADD(c.last_updated_time, INTERVAL 3 DAY)) = '7' THEN DATE_ADD(c.last_updated_time, INTERVAL 5 DAY)
WHEN FORMAT_DATE('%u', DATE_ADD(c.last_updated_time, INTERVAL 3 DAY)) = '1' THEN DATE_ADD(c.last_updated_time, INTERVAL 5 DAY)
WHEN FORMAT_DATE('%u', DATE_ADD(c.last_updated_time, INTERVAL 3 DAY)) = '2' THEN DATE_ADD(c.last_updated_time, INTERVAL 4 DAY)
ELSE DATE_ADD(c.last_updated_time, INTERVAL 3 DAY)
END
FROM data AS c