sql - Postgres 将 jsonb 值连接/聚合成一个字符串
问题描述
我有一个表格,其中entities
有一jsonb
列dict
包含如下所述的语言环境:
{
"fr": {
"key1": "french1",
"key2": "french2"
},
"en": {
"key1": "value1",
"key2": "value2",
"key3": "value3"
}
}
在同一张表中,我创建了一个新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
推荐阅读
- javascript - Material-UI 日期选择器组件在 Safari 上无法正常工作
- python - 无法在 google colab 中使用 listdir 命令读取目录
- csv - 在 awk 中删除匹配记录的 CSV 行
- javascript - Angular ngx-datatable 将 accountid 链接到详细信息页面
- python - 如何处理 django 返回的 Nonetype 没有 len()
- winapi - 如何使用 UIA 为 CefBrowserWindow 加载子元素
- linux - 如何在 Linux 下正确安装 Ghostscript 作为共享库
- windows-10 - 如何将 bash 命令关联到 Git Bash 而不是 WSL Bash?
- java - 如何在同一行中对多个依赖项进行分组 - Gradle
- android - Fragment Android Kotlin 中的 DataBinding+ViewModel