Sql 我可以将字符串化数组的行值转换为BigQuery中的数组吗
我有一行,它的值是数组的字符串。我需要把它转换成数组 我试图通过使用Sql 我可以将字符串化数组的行值转换为BigQuery中的数组吗,sql,google-bigquery,Sql,Google Bigquery,我有一行,它的值是数组的字符串。我需要把它转换成数组 我试图通过使用SUBSTR函数剥离报价来转换它 WITH k AS (SELECT 1 as id, (SELECT after.ClientIds FROM `kube-playground.events.login_v2_users`) AS c) Select id, ARRAY(SELECT * FROM UNNEST(SPLIT(SUBSTR(c, 2 , LENGTH(c) - 2)))) AS x from k 它失
SUBSTR
函数剥离报价来转换它
WITH k AS (SELECT 1 as id, (SELECT after.ClientIds
FROM `kube-playground.events.login_v2_users`) AS c)
Select id, ARRAY(SELECT * FROM UNNEST(SPLIT(SUBSTR(c, 2 , LENGTH(c) - 2)))) AS x from k
它失败,因为标量子查询生成了多个元素。对这个问题有什么建议或想法吗?谢谢下面是BigQuery标准SQL 您可以简单地使用下面的示例
#standardSQL
SELECT JSON_EXTRACT_ARRAY(ClientIds)
FROM `kube-playground.events.login_v2_users`
您可以按如下所示进行测试
#standardSQL
WITH `kube-playground.events.login_v2_users` AS (
SELECT '[{"time":"asd", "id":"qwe"},{"time":"asd2", "id":"qwe2"},{"time":"asd3", "id":"qwe3"}]' ClientIds UNION ALL
SELECT '[{"time":"aseft", "id":"sdf"},{"time":"aseft2", "id":"sdf2"}]'
)
SELECT JSON_EXTRACT_ARRAY(ClientIds)
FROM `kube-playground.events.login_v2_users`
结果
Row f0_
1 {"time":"asd","id":"qwe"}
{"time":"asd2","id":"qwe2"}
{"time":"asd3","id":"qwe3"}
2 {"time":"aseft","id":"sdf"}
{"time":"aseft2","id":"sdf2"}