BigQuery中无法从嵌套JSON列提取值求助
BigQuery JSON列取值问题解决
错误原因
- 误用
JSON_QUERY_ARRAY函数:该函数用于提取JSON数组类型字段,但Column3是单个字符串值,并非数组。 myextract列是ARRAY<JSON>类型,直接对数组使用JSON函数会触发类型不匹配错误。
正确查询语句
由于myextract是JSON数组,需先展开数组再提取字段:
SELECT JSON_VALUE(item, '$.Column3') AS InstitutionName FROM data, UNNEST(myextract) AS item
关键说明
UNNEST(myextract):将ARRAY<JSON>类型的myextract列拆分为单个JSON对象,命名为item。JSON_VALUE(item, '$.Column3'):从单个JSON对象中提取Column3的纯文本值(不带引号),正好符合你需要的"AAA"结果。
如果myextract实际是单个JSON对象(而非数组),直接使用以下查询即可:
SELECT JSON_VALUE(myextract, '$.Column3') AS InstitutionName FROM data
内容的提问来源于stack exchange,提问作者Peter
相关产品推荐
相关产品推荐

