pg多行合并为逗号分隔一行_postgresql 实现sql多行语句合并一行

本文介绍了如何在 PostgreSQL 中将多行数据合并为一行,使用了`array_to_string`和`unnest`函数,提供两种简单方法实现列的多条记录拼接,并给出排序后拼接的示例。
摘要由CSDN通过智能技术生成

多行语句合并一行

三个表关联查询的结果集为:

SELECT users.name,users.age,users.birthday,roles.name FROM users,users_roles,roles WHERE users_roles.userid = users.id and users_roles.roleid = roles.id

name age birthday role

张三 23 1993-1-1 role1

张三 23 1993-1-1 role2

张三 23 1993-1-1 role3

以下语句执行后

SELECT users.name,users.age,users.birthday, array_to_string(ARRAY(SELECT unnest(array_agg(roles.name)) ),',') as roles FROM users,users_roles,roles WHERE users_roles.userid = users.id and users_roles.roleid = roles.id group by users.name,users.age,users.birthday

结果为:

name age birthday roles

张三 23 1993-1-1 role1,role2,role3

补充:PostgreSQL合并查询同一列的多条记录

昨天遇到一个sql问题,需要将一个表中的某一列的多行数据拼接成一行

例如:表中有2列数据:

列1 列2

AAA 企业1

AAA 企业2

AAA 企业3

BBB 企业4

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值