在 BigQuery 中使用列名创建数组

Create array with column names in BigQuery

我有一个包含多列的 table。我想创建一个数组,其中包含出现在 table 中的所有列的名称,以便我以后可以使用该数组。

我使用此查询选择了列名:

SELECT column_name FROM Books1.INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'table1'

现在我想声明并设置一个包含列名的数组:

DECLARE column_names ARRAY <STRING>
SET column_names = **

我不知道应该用哪几行代码替换**。在 Internet 上,我只找到了可以创建具有一组预定义值的数组的示例。

有人可以帮忙吗?

您应该能够通过以下方式实现您想要的:

DECLARE column_names ARRAY <STRING>
SET column_names = (SELECT arraY_agg(column_name) FROM Books1.INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'table1'
);

添加 array_agg 使查询 return 成为列名数组。