赞
踩
之前在MySQL中使用group_concat,觉得超级好用。
今天在PostgreSQL需要用到这样的场景,就去学习了一下。
在PostgreSQL中提供了array_agg的函数来实现聚合,不过返回的类型是Array。
如果我们需要得到一个字符串类型的数据时,可以通过 array_to_string(array_agg(字段),',')方式来实现。
当然也有更加方便的函数来实现,string_agg(字段,',')。
例如:(查新员工信息,需要把角色合并)
SELECT T.ID,T.username,T.truename,array_to_string(array_agg(b.description),',') as roleName,T.emailaddress,T.project,T.groupname,T.enabled
FROM h_users T
LEFT JOIN user_role A ON T.ID = A.user_id
LEFT JOIN ROLE b ON A.role_id = b.ID
group by T.ID,T.username,T.truename,T.emailaddress,T.project,T.groupname,T.enabled
order by T.username
查询结果:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。