Sql 将多个列转换为Bigquery中的记录
我试图在Bigquery中将平面表转换为嵌套表。 如果要获取一行,并将某些列转换为两个字段:Sql 将多个列转换为Bigquery中的记录,sql,google-cloud-platform,google-bigquery,bigdata,Sql,Google Cloud Platform,Google Bigquery,Bigdata,我试图在Bigquery中将平面表转换为嵌套表。 如果要获取一行,并将某些列转换为两个字段: key.name 键值 例如,如果我在这张桌子上: 我想将其转换为以下结构: 您可以将其定义为数组。我建议将其放入字符串结构中,这样您就只有一个数组: select unique_key, cast_number, date, [struct('block' as key, block as value), struct('iucr' as key, iucr as va
您可以将其定义为数组。我建议将其放入字符串结构中,这样您就只有一个数组:
select unique_key, cast_number, date,
[struct('block' as key, block as value),
struct('iucr' as key, iucr as value),
struct('primary_type' as key, primary_type as value),
. . .
] as key_values
但对于你特别要求的:
select unique_key, cast_number, date,
['block', 'iucr', 'primary_type', . . . ] as keys,
[block, iucr, primary_type, . . . ] as values
注意,这些假设值都是字符串。如果某些值不正确,您可能需要转换它们。完美!这就是我要找的。谢谢如何处理“数组不能有空元素;写入字段值时出错”?@LHA。我认为错误很明显。您需要删除该列,或者使用
coalesce()
给它一个不同的值。