【发布时间】:2021-04-17 05:13:42
【问题描述】:
给定来自名为“_value”的列下的“表”的输入 JSON。我想将字段“sc”替换为从对象到 sc 下名称值的文本。
更新前的json是这样的
{
"iProps": [
{
"value": {
"rules": [
{
"ao": {
"sc": {
"web_link": "abc.com",
"name": "name"
}
}
},
{
"ao": {
"sc": ""
}
}
]
}
}
]
}
更新后的json应该是这样的
{
"iProps": [
{
"value": {
"rules": [
{
"ao": {
"sc": "name"
}
},
{
"ao": {
"sc": ""
}
}
]
}
}
]
}
我尝试了以下查询以获取“规则”数组,但难以进一步进行解析和更新。
WITH values AS (
SELECT iprop -> 'value' -> 'rules' AS value FROM
table t,jsonb_array_elements(t._value->'iProps') AS
iprop )
SELECT *
from values, jsonb_array_elements(values.ao)
引发以下错误
ERROR: column values.ao does not exist
LINE 26: from values, jsonb_array_elements(values.ao)
^
SQL state: 42703
Character: 1396
【问题讨论】:
标签: sql postgresql sql-update jsonb postgresql-9.5