BigQuery SQL如何从JSON字符串中提取cust_no和comp_no的value值
BigQuery提取嵌套JSON指定字段方案
直接使用BigQuery内置的JSON解析函数即可实现需求,需注意JSON键名包含特殊字符$,要正确引用路径。
参考实现SQL:
SELECT -- 提取cust_no对应的value值 JSON_EXTRACT_SCALAR(json_column, '$["$cust_no"].value') AS cust_no, -- 提取comp_no对应的value值 JSON_EXTRACT_SCALAR(json_column, '$["$comp_no"].value') AS comp_no, -- 保留原表其他字段,排除原始JSON字段可删除EXCEPT部分 * EXCEPT(json_column) FROM `你的项目ID.你的数据集名.你的表名`
补充说明:
- 代码中的
json_column替换为你表中实际存储JSON字符串的字段名即可。 - 如果你的字段本身是JSON类型而非STRING类型,可简化写法:
SELECT json_column['$cust_no'].value AS cust_no, json_column['$comp_no'].value AS comp_no, * EXCEPT(json_column) FROM `你的项目ID.你的数据集名.你的表名` - 如果存在部分JSON格式不合法的场景,可在函数前加
SAFE.前缀(例如SAFE.JSON_EXTRACT_SCALAR),解析失败时会返回NULL而非中断整个查询。
内容的提问来源于stack exchange,提问作者vtrhmd
相关产品推荐
相关产品推荐

