BigQuery如何从JSON字符串中提取数组并解析得到game_id值
问题排查与解决方案
错误原因
- 函数拼写错误:你代码中写的
JSON_EXRACT_SCALAR拼写有误,BigQuery 中对应的正确函数名为JSON_EXTRACT_SCALAR - 保留关键字问题:如果你的实际表名就是
table,需要用反引号包裹,否则table作为SQL保留关键字会触发语法错误,导致查询无法正常返回结果
正确实现代码
SELECT user_id, JSON_EXTRACT_SCALAR(json_array, "$.game_id") AS game_ids FROM -- 替换为你实际的表名,表名如果是关键字必须加反引号包裹 `你的表名` , UNNEST(JSON_EXTRACT_ARRAY(j_games_information, "$.data")) AS json_array
如果你的j_games_information字段本身为JSON类型(而非字符串类型),也可以用更简洁的写法:
SELECT user_id, json_array.game_id AS game_ids FROM `你的表名` , UNNEST(j_games_information.data) AS json_array
执行上述代码即可得到你需要的、按user_id拆分每个game_id为单独行的结果。
内容的提问来源于stack exchange,提问作者monckeyyL
相关产品推荐
相关产品推荐

