在BigQuery用户界面中使用变量名称创建表

时间:2019-12-17 10:41:43

标签: google-bigquery

我正在尝试编写一个可以存储为过程的BigQuery脚本,我希望将传递的参数之一用在脚本写出的表名中,例如:

@JsonProperty("names")
private List<Name> names;

但是,在此示例中,表是使用名称DECLARE id STRING; SET id = '123'; CREATE OR REPLACE TABLE test.id AS( SELECT * FROM dataset.table ) 而不是“ id”变量id的值创建的。有什么方法可以使用BigQuery UI中声明的变量的值动态创建表?

3 个答案:

答案 0 :(得分:4)

如果您知道表架构,为什么不只对concat使用立即执行?

EXECUTE IMMEDIATE CONCAT('CREATE TABLE `', id, '` (column_name STRING)');

答案 1 :(得分:1)

到目前为止,我们已经正式发布BigQuery scripting文档,该文档仍处于Beta阶段,它利用动态参数(变量)作为SQL查询中的值的占位符。但是,根据Parameterized queries in BigQuery文档,查询参数不能用于SQL对象标识符:

  

参数不能用作标识符,列的替代   名称,表名或查询的其他部分。

答案 2 :(得分:0)

也许您可以use a wildcard table。您将创建一个包含所有要查询的子表的通配符表,并使用WHERE子句选择所需的任何子表。请注意,表必须具有相同的架构。