【发布时间】:2021-10-24 06:11:22
【问题描述】:
我正在创建一个临时表,然后尝试像这样循环该表:
CREATE TEMP TABLE `table_name` AS
SELECT 1 AS row, DATE_SUB(DATE_TRUNC(CURRENT_DATE('Europe/London'), WEEK(MONDAY)), INTERVAL 1 WEEK) AS start, DATE_TRUNC(CURRENT_DATE('Europe/London'), WEEK(MONDAY)) AS end_date_plus_one UNION ALL
SELECT 2, DATE_SUB(DATE_TRUNC(CURRENT_DATE('Europe/London'), WEEK(MONDAY)), INTERVAL 2 WEEK), DATE_SUB(DATE_TRUNC(CURRENT_DATE('Europe/London'), WEEK(MONDAY)), INTERVAL 1 WEEK) UNION ALL
SELECT 3, DATE_SUB(DATE_TRUNC(CURRENT_DATE('Europe/London'), WEEK(MONDAY)), INTERVAL 3 WEEK), DATE_SUB(DATE_TRUNC(CURRENT_DATE('Europe/London'), WEEK(MONDAY)), INTERVAL 2 WEEK) UNION ALL
SELECT 4, DATE_SUB(DATE_TRUNC(CURRENT_DATE('Europe/London'), WEEK(MONDAY)), INTERVAL 4 WEEK), DATE_SUB(DATE_TRUNC(CURRENT_DATE('Europe/London'), WEEK(MONDAY)), INTERVAL 3 WEEK)
;
BEGIN
DECLARE loopRow INT64;
SET loopRow = 1;
WHILE table_name.start IS NOT NULL DO
SELECT start FROM `table_name` WHERE row = loopRow;
SET loopRow = loopRow + 1;
END WHILE;
END
预期的输出是开始日期列表,当没有更多日期时会中断循环。我收到错误Unrecognized name: table_name。
【问题讨论】:
标签: sql while-loop google-bigquery