Postgres:使用SELECT从json数组中获取名称值

时间:2016-11-17 06:26:53

标签: sql json postgresql

在列中说详细信息,值存储为:

[{"id":"key1","name":"Concerts \u0026amp; Tour Dates"},{"id":"key2","name":"Nightlife \u0026amp; Singles"}]

列类型:文本

我需要使用单个SELECT语句获取名称的逗号分隔值。还需要放大器符号。

结果: [音乐会&旅游日期,夜生活&碟]

1 个答案:

答案 0 :(得分:2)

这样做:

select string_agg(d.e ->> 'name', ',')
from the_table, json_array_elements(that_text_column::json) as d(e);

要将&更改为&,请使用替换功能:

select string_agg(replace(d.e ->> 'name','&', '&'), ',')
from the_table, json_array_elements(that_text_column::json) as d(e);

在线示例:http://rextester.com/XAPDTC62018