使用另一个 json 对象 postgres9.5 更新 json 列

西德

我有一个结构表

id(int) | attributes (json)

1       | {"a":1,"b":2}

我想用另一个 json 对象更新属性列

{"b":5, "c":8}

这样最终输出看起来像这样

id(int) | attributes (json)

1       | {"a":1,"b":7, "c":8}

我能够使用||运算符获得以下结果

id(int) | attributes (json)

1       | {"a":1,"b":5, "c":8}

但不是想要的。

无法找到此任务的任何其他特定功能/操作。

因此,任何文档都会有所帮助。

提前致谢。

克林

创建自定义函数,例如:

create or replace function json_merge_and_sum(json, json)
returns json language sql as $$
    select json_object_agg(key, sum order by key)
    from (
        select key, sum(value::int) -- or ::numeric
        from (
            select * from json_each_text($1) 
            union 
            select * from json_each_text($2)) a
        group by key
        ) s
$$;

select json_merge_and_sum('{"a":1,"b":2}'::json, '{"b":5, "c":8}'::json);

      json_merge_and_sum       
-------------------------------
 { "a" : 1, "b" : 7, "c" : 8 }
(1 row)

当然,只有当 json 参数的所有值都是数字时,该函数才能正常工作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Javascript页面:使用JSON对象为另一个网站页面打开一个新标签

如何从一个json对象获取信息并使用另一个json对象的密钥?

在JSON中将一个对象推送到另一个对象

从另一个表中的JSON_VALUE更新TSQL列?

在基于另一个架构对象的json架构上使用条件语句

使用另一个json对象从json对象中删除特定内容

如何使用另一个json的顺序对json对象进行排序

将数组JSON对象合并到Postgres中的一个JSON列

如何从Typescript中具有相同json对象结构的另一个数组更新数组中的json对象值

使用Powershell的另一个循环JSON对象

如何在Android中使用Retrofit在另一个json对象中发送json对象?

如何使用fs.appendFile()附加文件但不编写另一个JSON对象

如何访问另一个对象内另一个json对象内的json对象?

使用jq根据另一个密钥名称更新json的密钥

使用plsql将json对象附加或附加到另一个json对象json对象中

如何使用Python将一个JSON对象的值转换为另一个JSON对象的值

根据另一个更新JSON格式的JavaScript对象

使用另一个文件中的会话变量制作Json对象

检索另一个对象中的JSON对象

使用php将数组转换为另一个json对象内部的json对象

如何使用 Python 从另一个对象创建一个新的 JSON 对象?

使用 angular2 映射 JSON 键并更新另一个 JSON 中的值

Kivy:使用 kivy.storage.jsonstore 在另一个 JSON 对象中添加 JSON 对象

如何保存 JSON 对象并在另一个请求中使用它?

添加一个 json 对象作为另一个对象的子对象

Rails - 为一个对象和另一个对象的属性呈现 JSON

如何使用 Django Rest 将一个对象的 json 在另一个内部

Reat Js 使用 json 对象导航到另一个页面

使用 bash/jq 将 json 对象添加到另一个 json 对象中