有没有办法从PostgreSQL表中获取json格式的数据,该表具有不同的字段而不是json数据类型字段?

时间:2016-07-29 07:26:58

标签: json postgresql postgresql-9.3

我在PostgreSQL中有一个表,其中包含id,name,city,mob等字段 我在PostgreSQL中得到了json数据类型,我们可以在其中 以json格式存储数据但我不想使用json数据类型。

我想获取这些表字段(id,name,city,mob),它们是普通字段,而不是我想要的json格式字段

我想要假设mytable是一个有id,name,city,mob,dob作为字段和
的表 现在我想执行如下查询:

select name,city from mytable where id=5;

此查询应返回{"name":"xyz","city":"abc"}

之类的输出

那我怎么能这样做呢?那该查询应该是什么?

1 个答案:

答案 0 :(得分:0)

使用row_to_json()

select row_to_json(t) 
from (
   select name,city from mytable 
   where id=5
) t

创建具有列的专有名称的记录类型时,必须使用派生表。 row_to_json((name,city))无法做到这一点。

修改

如果您想要表格中的所有列(不仅仅是问题中显示的两列),那么您就不需要派生表:

select row_to_json(mytable)
from mytable
where id = 5;