BigQuery 中的循环(SQL - GOOGLE CLOUD)

问题描述 投票:0回答:2

我想知道如何在 bigquery 中执行循环来创建一个仅更改其名称和 where 子句的表。 基本上作为一个例子:

例如,我想根据向量_a创建三次表,也就是说,我们将有一个名为01,02,03的表并从向量_b进行过滤,该表也会更改为使用std1在开始,然后是 std2 和 std3。这些变量以字符串格式存储在数组中。

sql loops google-bigquery
2个回答
7
投票

请参阅 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;

0
投票

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;
© www.soinside.com 2019 - 2024. All rights reserved.