我正在运行
postgresql 9.3.4.我有一个包含3个字段的表:
id name addr --- ---- ---- 1 n1 ad1 2 n2 ad2 ...
我需要将数据移动到一个新表,其中包含以下字段:
id data --- ---- 1 {'name': 'n1','addr': 'ad1'} 2 {'name': 'n2','addr': 'ad2'} ...
row_to_json不是我的解决方案,因为SELECT t.id,row_to_json(t)作为数据FROM(选择id,name,来自myt的addr)t也将id添加到结果中.有没有办法在我的数据字段中选择我需要的字段(name& addr)?
Postgres 9.4中有一个更好的选择
json_build_object()
SELECT id,json_build_object('name','addr',addr) AS data FROM myt;
但是在第9.3页中使用row_to_json()还有一种更简单,更快捷的方法:
SELECT id,row_to_json((SELECT d FROM (SELECT name,addr) d)) AS data FROM myt;
SQL Fiddle.
Cast to :: text仅适用于小提琴中的清理显示.
相关答案:
> Select columns inside json_agg
> Return as array of JSON objects in SQL (Postgres)
> Return total number of rows and selected (aggregated) data
原文地址:https://www.jb51.cc/postgresql/192224.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。