postgresql 實現(xiàn)sql多行語句合并一行
多行語句合并一行
三個表關聯(lián)查詢的結(jié)果集為:
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
以下語句執(zhí)行后
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
結(jié)果為:
name age birthday roles
張三 23 1993-1-1 role1,role2,role3
補充:PostgreSQL合并查詢同一列的多條記錄
昨天遇到一個sql問題,需要將一個表中的某一列的多行數(shù)據(jù)拼接成一行
例如:表中有2列數(shù)據(jù):
列1 列2 AAA 企業(yè)1 AAA 企業(yè)2 AAA 企業(yè)3 BBB 企業(yè)4 BBB 企業(yè)5
我想把這個表變成如下格式:
列1 列2 AAA 企業(yè)1,企業(yè)2,企業(yè)3 BBB 企業(yè)4,企業(yè)5
類似sqlServer中的stuff函數(shù)在PostgreSQL中如何實現(xiàn)呢?
查了一些資料,找到2種比較簡單方便的方法,總結(jié)一下。
方法一:
SELECT 列1, string_agg(列2,',') AS 別名 FROM 表名 GROUP BY 列1 ;
方法二(推薦使用):
SELECT 列1, array_to_string(ARRAY(SELECT unnest(array_agg(列2))),',') AS 別名 FROM 表名 GROUP BY 列1;
如果需要排序后再拼接:
SELECT 列1, array_to_string(ARRAY(SELECT unnest(array_agg(列2 order by 列2 desc))),',') AS 別名 FROM 表名 GROUP BY 列1;
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。
相關文章
使用navicat連接postgresql報錯問題圖文解決辦法
我們在日常開發(fā)中有時候需要用navicate連接postgresql數(shù)據(jù)庫,有時候會連接不上數(shù)據(jù)庫,下面這篇文章主要給大家介紹了關于使用navicat連接postgresql報錯問題圖文解決辦法,需要的朋友可以參考下2023-11-11
如何在PostgreSQL中創(chuàng)建只讀權限和讀寫權限的賬號
一個良好的賬號管理策略對于數(shù)據(jù)庫的安全和數(shù)據(jù)的完整性至關重要,通過為不同的用戶設置適當?shù)臋嘞?可以確保他們只能訪問他們需要的數(shù)據(jù),并防止對敏感數(shù)據(jù)的意外或惡意訪問,本文介紹在 PostgreSQL中創(chuàng)建只讀權限和讀寫權限的賬號的步驟和方法,感興趣的朋友一起看看吧2023-08-08
Postgresql數(shù)據(jù)庫character?varying和character的區(qū)別說明
這篇文章主要介紹了Postgresql數(shù)據(jù)庫character?varying和character的區(qū)別說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-07-07
PostgreSQL實現(xiàn)批量插入、更新與合并操作的方法
這篇文章主要給大家介紹了關于PostgreSQL實現(xiàn)批量插入、更新與合并操作的相關資料,文中通過圖文以及示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧2019-02-02
postgreSQL數(shù)據(jù)庫的監(jiān)控及數(shù)據(jù)維護操作
這篇文章主要介紹了postgreSQL數(shù)據(jù)庫的監(jiān)控及數(shù)據(jù)維護操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01

