Postgres concatenating/aggregating 将一个jsonb值转换成一个字符串

Postgres concatenating/aggregating a jsonb values into one string

我有一个 table entities 和一个 jsonbdict,其中包含如下所述的语言环境:

{
  "fr": {
    "key1": "french1",
    "key2": "french2"
  },
  "en": {
    "key1": "value1",
    "key2": "value2",
    "key3": "value3"
  }
}

在同一个 table 中,我创建了一个新的 tsvectoren_locale,它需要保存 dict -> 'en' 值串联的 tsvector。

对于上面的示例,我想实现以下值的串联(不需要保留顺序):

value1 value2 value3 值之间用空格分隔。

这是为了填充 tsvectorto_tsvector('value1 value2 value3')

任何建议都很棒!非常感谢!

你的问题不清楚你到底想要什么。仅根据您的问题 TITLE,您想连接 dict -> 'en'.

中所有键的值

所以试试这个:

select 
(select string_agg(j.value, ' ') 
from jsonb_each_text(dict->'en') j) "values" from your_table

DEMO