Postgres concatenating/aggregating 将一个jsonb值转换成一个字符串
Postgres concatenating/aggregating a jsonb values into one string
我有一个 table entities
和一个 jsonb
列 dict
,其中包含如下所述的语言环境:
{
"fr": {
"key1": "french1",
"key2": "french2"
},
"en": {
"key1": "value1",
"key2": "value2",
"key3": "value3"
}
}
在同一个 table 中,我创建了一个新的 tsvector
列 en_locale
,它需要保存 dict -> 'en'
值串联的 tsvector。
对于上面的示例,我想实现以下值的串联(不需要保留顺序):
value1 value2 value3
值之间用空格分隔。
这是为了填充 tsvector
列 to_tsvector('value1 value2 value3')
任何建议都很棒!非常感谢!
你的问题不清楚你到底想要什么。仅根据您的问题 TITLE
,您想连接 dict -> 'en'
.
中所有键的值
所以试试这个:
select
(select string_agg(j.value, ' ')
from jsonb_each_text(dict->'en') j) "values" from your_table
我有一个 table entities
和一个 jsonb
列 dict
,其中包含如下所述的语言环境:
{
"fr": {
"key1": "french1",
"key2": "french2"
},
"en": {
"key1": "value1",
"key2": "value2",
"key3": "value3"
}
}
在同一个 table 中,我创建了一个新的 tsvector
列 en_locale
,它需要保存 dict -> 'en'
值串联的 tsvector。
对于上面的示例,我想实现以下值的串联(不需要保留顺序):
value1 value2 value3
值之间用空格分隔。
这是为了填充 tsvector
列 to_tsvector('value1 value2 value3')
任何建议都很棒!非常感谢!
你的问题不清楚你到底想要什么。仅根据您的问题 TITLE
,您想连接 dict -> 'en'
.
所以试试这个:
select
(select string_agg(j.value, ' ')
from jsonb_each_text(dict->'en') j) "values" from your_table