如何在Big Query中使用SQL从JSON字符串提取指定字段值
Big Query JSON字段Score值提取方案
提取失败原因
你使用的evaluation字段为JSON数组结构(样本内容最外层为[]包裹),目标Score字段属于数组的第一个元素,原SQL未指定数组索引,无法匹配到对应路径,因此返回null。
正确提取方法
- 场景1:确认该字段的JSON数组始终仅包含1个元素
直接指定数组第一个元素的索引[0]即可,SQL语句如下:SELECT JSON_VALUE(evaluation, '$[0].Score') FROM 你的表名 - 场景2:JSON数组可能包含多个元素,需提取所有元素的Score值
先通过JSON_EXTRACT_ARRAY将数组拆分为单行单个JSON对象,再提取对应字段:SELECT JSON_VALUE(evaluation_item, '$.Score') AS score FROM 你的表名, UNNEST(JSON_EXTRACT_ARRAY(evaluation)) AS evaluation_item
内容的提问来源于stack exchange,提问作者Azubike
相关产品推荐
相关产品推荐

