我想知道如何在 bigquery 中执行循环来创建一个仅更改其名称和 where 子句的表。 基本上作为一个例子:
例如,我想根据向量_a创建三次表,也就是说,我们将有一个名为01,02,03的表并从向量_b进行过滤,该表也会更改为使用std1在开始,然后是 std2 和 std3。这些变量以字符串格式存储在数组中。
请参阅 https://cloud.google.com/bigquery/docs/reference/standard-sql/procedural-language#for-in
你可以使用类似的东西
DECLARE vector_a ARRAY<STRING>;
SET vector_a = ['_01', '_02', '_03'];
FOR loop_variable_name IN (SELECT * FROM UNNEST(vector_a))
DO
-- use loop_variable_name here;
END FOR;
对https://stackoverflow.com/a/73752498/6908861
中发布的答案进行轻微补充按原样使用变量loop_variable_name可能是不可行的。需要将其转换为 STRING 才能使用。
DECLARE vector_a ARRAY<STRING>;
SET vector_a = ['_01', '_02', '_03'];
FOR loop_variable_name IN (SELECT * FROM UNNEST(vector_a))
DO
SELECT * from table1 where col1 = cast(loop_variable_name[0] as STRING)
END FOR;