... но для целей моего вопроса вы можете просто предположить, что любое утверждение может быть там
Хорошо, так что ниже "подробного" фиктивного примера
#standardSQL
WITH `project.dataset.table` AS (
SELECT '2020-02-14 17:46:33.270196 UTC' order_date,
STRUCT('2020-02-12 17:46:33.270196 UTC' AS july_4th) next_year_holidays,
STRUCT('2020-02-13 17:46:33.270196 UTC' AS july_4th) current_year_holidays
)
SELECT IF(
TIMESTAMP_DIFF(TIMESTAMP(current_year_holidays.july_4th), TIMESTAMP(t1.order_date), DAY) < 0,
TIMESTAMP_DIFF(TIMESTAMP(next_year_holidays.july_4th), TIMESTAMP(t1.order_date), DAY),
TIMESTAMP_DIFF(TIMESTAMP(current_year_holidays.july_4th), TIMESTAMP(t1.order_date), DAY)
) AS days_until_july_4th
FROM `project.dataset.table` t1
можно переписать как
#standardSQL
WITH `project.dataset.table` AS (
SELECT '2020-02-14 17:46:33.270196 UTC' order_date,
STRUCT('2020-02-12 17:46:33.270196 UTC' AS july_4th) next_year_holidays,
STRUCT('2020-02-13 17:46:33.270196 UTC' AS july_4th) current_year_holidays
)
SELECT IF(
diff < 0,
TIMESTAMP_DIFF(TIMESTAMP(next_year_holidays.july_4th), TIMESTAMP(t1.order_date), DAY),
diff
) AS days_until_july_4th
FROM `project.dataset.table` t1,
UNNEST([TIMESTAMP_DIFF(TIMESTAMP(current_year_holidays.july_4th), TIMESTAMP(t1.order_date), DAY)]) diff
Надеюсь, это дает вам представление