postgresql 将查询结果转换为字符串postgres

gmxoilav  于 2022-11-23  发布在  PostgreSQL
关注(0)|答案(1)|浏览(252)

我有一张这样table

TableA
id  data
--------
1  {"name":"abc","dob":"12-12-12","code""12O0X"}
2  {"name":"def","dob":"13-12-12","code""12O0Y"}
3  {"name":"ghi","dob":"14-12-12","code""12O0Z"}

我需要通过运行此查询获得的此表中的名称和dob数据

select data->>'name' as name,
       data->>'dob' as dob 
from TableA 
where id='1';

输出如下所示

name | abc
dob  | 12-12-12

但问题是,我希望这些数据采用字符串格式,如下所示

" "name" : "abc" ,"dob" :"12-12-12" "

这样我就可以把它转换成hashmap。有没有一个Postgres函数可以把我的查询结果转换成我想要的格式。

zf9nrax1

zf9nrax11#

您可以使用

select to_json(*)
from (
  select data->>'name' as name,
         data->>'dob' as dob 
  from TableA
  where id='1'
) result;

select json_build_object(
  'name', data->'name',
  'dob', data->'dob'
)
from TableA
where id='1';

select json_object_agg(key,val)
from TableA, json_each(data)
where id='1'
  and key in ('name', 'dob')

相关问题