postgresql - 如何在 PostgreSQL 中连接 string_arr
问题描述
如何连接 rcm_working_paper 和文档代码如下 -
select RCM.id as rcm_no,
string_agg(distinct RWP.body->>'working_paper_code', ',')as rcm_working_paper,
string_agg(distinct RWP.body->>'document', ',')as documents
from masters."RCM" RCM
inner join masters."RCM_WORKING_PAPERS" RWP on RCM.id=RWP.rcm_id
GROUP BY RCM.id
我正在这样做并且发生了一些错误。
select
RCM.id as rcm_no,
string_agg(distinct RWP.body->>'working_paper_code'|| ' ' || RWP.body->>'document', ',')as
rcm_working_paper
from masters."RCM" RCM
inner join masters."RCM_WORKING_PAPERS" RWP on RCM.id=RWP.rcm_id
GROUP BY RCM.id
解决方案
您需要将每个表达式括在括号中:
select
RCM.id as rcm_no,
string_agg(distinct (RWP.body->> 'working_paper_code')|| ' ' ||(RWP.body->>'document'), ',') as rcm_working_paper
from masters."RCM" RCM
inner join masters."RCM_WORKING_PAPERS" RWP on RCM.id=RWP.rcm_id
GROUP BY RCM.id
或者使用concat_ws()
select
RCM.id as rcm_no,
string_agg(distinct concat_ws(' ', RWP.body->> 'working_paper_code', RWP.body->>'document'), ',') as rcm_working_paper
from masters."RCM" RCM
inner join masters."RCM_WORKING_PAPERS" RWP on RCM.id=RWP.rcm_id
GROUP BY RCM.id
或者concat()
select
RCM.id as rcm_no,
string_agg(distinct concat(RWP.body->> 'working_paper_code', ' ', RWP.body->>'document'), ',') as rcm_working_paper
from masters."RCM" RCM
inner join masters."RCM_WORKING_PAPERS" RWP on RCM.id=RWP.rcm_id
GROUP BY RCM.id
推荐阅读
- php - 使用 Redis 和 MySQL 加载和更新数据的最佳实践是什么?
- c# - 如何绑定 ObservableCollection 中所有项目的 Time-Dependent-Property
到一个文本框? - html - 如何将 HTML 小部件的值从 HTML 表单传递到 eXist-db 中的 Xquery?
- julia - 不使用 JuMPeR 是否可以建立相关的鲁棒优化模型
- ruby-on-rails - Rails 模型中的两级命名空间
- vue.js - Nuxt Prerender 与 Thymeleaf 不匹配
- c# - 在 AppService 中启动 ASP.NET Core 主机之前捕获并记录错误
- c++ - 使用 cin 验证用户输入
- python - botocore.exceptions.InvalidConfigError:源配置文件“默认”必须具有凭据
- c# - C# 动态编程转换