BigQuery中JSON字段查询无数据问题求助
解决BigQuery中JSON字段查询无结果的问题
问题根源分析
你的查询返回空结果,核心是两处UNNEST操作的路径错误:
json_data.data是单个对象而非数组,强行对其做数组UNNEST会直接返回空resources.boost是单个对象而非数组,再次UNNEST会进一步过滤掉所有数据
修正后的SQL语句
根据json_data字段的实际类型,选择对应的查询语句:
情况1:json_data是JSON类型
SELECT resources.boost.url_source AS url_source FROM `my database` CROSS JOIN UNNEST(json_data.data.resources) AS resources WHERE id = 1675816490
情况2:json_data是STRING类型
SELECT JSON_VALUE(resources, '$.boost.url_source') AS url_source FROM `my database` CROSS JOIN UNNEST(JSON_EXTRACT_ARRAY(json_data, '$.data.resources')) AS resources WHERE id = 1675816490
关键说明
- 仅需要对
data.resources这个数组做UNNEST操作,这是整个JSON结构里唯一的数组层级 boost是resources下的单个对象,直接提取其url_source字段即可,无需额外UNNEST
内容的提问来源于stack exchange,提问作者Jarboy
相关产品推荐
相关产品推荐

