首页 > 解决方案 > Postgres 将 jsonb 值连接/聚合成一个字符串

问题描述

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

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

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

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

value1 value2 value3值用空格分隔。

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

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

标签: sqlpostgresqljsonbstring-aggregation

解决方案


你的问题不清楚你到底想要什么。只是根据您的问题,TITLE您想要连接所有键的值dict -> 'en'

所以试试这个:

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

演示


推荐阅读