在 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 成为列名数组。
我有一个包含多列的 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 成为列名数组。