如何解析JSON数组及嵌套值 避免JSON_TABLE生成多条重复记录
解决方案
JSON_TABLE使用多个NESTED PATH时会默认对每个嵌套路径的匹配结果做外联展开,导致单个数组项生成多条记录。不需要使用UNION或GROUP BY,直接删除所有NESTED PATH声明,在字段定义时填写完整的JSON取值路径即可:
SELECT x.* FROM DEMO_JSON a, JSON_TABLE(a.DOC, '$.value[*]' COLUMNS ( IDs VARCHAR2(100) PATH '$.id', code NUMBER PATH '$.status.errorCode', browser VARCHAR2(100) PATH '$.deviceDetail.browser', city VARCHAR2(100) PATH '$.location.city' ) ) X;
输出结果
IDS CODE BROWSER CITY a3ac3bec-4c4e-42c8-a11c-068f3dfda201 0 Chrome 92.0.4515 xyz a3ac3bec-4c4e-42c8-a11c-068f3dfda201 1 Chrome 92.0.4505 abc
内容的提问来源于stack exchange,提问作者Aamir Gudawala
相关产品推荐
相关产品推荐

