当多个节点共享同一名称时,使用Oracle SQL获取JSON_值
我有一个问题,我的oracle数据库中存储了一些JSON,我需要从中提取值 问题是,有些字段是重复的 当我尝试此操作时,它会起作用,因为选项数组中只有一个firstname键:当多个节点共享同一名称时,使用Oracle SQL获取JSON_值,sql,json,oracle,plsql,Sql,Json,Oracle,Plsql,我有一个问题,我的oracle数据库中存储了一些JSON,我需要从中提取值 问题是,有些字段是重复的 当我尝试此操作时,它会起作用,因为选项数组中只有一个firstname键: SELECT JSON_VALUE('{"increment_id":"2500000043","item_id":"845768","options":[{"firstname":"Kevin"},{"lastname":"Test"}]}', '$.options.firstname') AS va
SELECT
JSON_VALUE('{"increment_id":"2500000043","item_id":"845768","options":[{"firstname":"Kevin"},{"lastname":"Test"}]}', '$.options.firstname') AS value
FROM DUAL;
返回“凯文”
但是,当firstname字段有两个值时:
SELECT JSON_VALUE('{"increment_id":"2500000043","item_id":"845768","options":[{"firstname":"Kevin"},{"firstname":"Okay"},{"lastname":"Test"}]}', '$.options.firstname') AS value
FROM DUAL;
它只返回NULL
有什么方法可以选择“firstname”在该上下文中的第一次出现吗?JSON\u VALUE从JSON数据返回一个SQL值(如果键不存在,则返回SQL NULL) 如果您有一个值集合(JSON数组),您需要数组中的一个特定项,您可以使用数组下标(方括号),如JavaScript中的[2]来选择第三个项。[0]选择第一项。 要获取示例中的第一个数组项,必须将路径表达式从“$.options.firstname”更改为“$.options[0].firstname”