1. 程式人生 > 實用技巧 >PostgreSQL 中如何實現group_concat

PostgreSQL 中如何實現group_concat

之前在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

查詢結果: