postgresql 實(shí)現(xiàn)sql多行語句合并一行
多行語句合并一行
三個表關(guān)聯(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
補(bǔ)充: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中如何實(shí)現(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)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。
- Postgresql使用update語句的方法示例
- PostgreSQL實(shí)時查看數(shù)據(jù)庫實(shí)例正在執(zhí)行的SQL語句實(shí)例詳解
- Postgresql 查看SQL語句執(zhí)行效率的操作
- postgresql SQL語句變量的使用說明
- Postgresql的pl/pgql使用操作--將多條執(zhí)行語句作為一個事務(wù)
- postgresql 賦權(quán)語句 grant的正確使用說明
- PostgreSQL標(biāo)準(zhǔn)建表語句分享
- postgresql 導(dǎo)出建表語句的命令操作
- Postgresql ALTER語句常用操作小結(jié)
- Postgresql開啟SQL執(zhí)行語句收集過程
相關(guān)文章
如何將excel表格數(shù)據(jù)導(dǎo)入postgresql數(shù)據(jù)庫
這篇文章主要介紹了如何將excel表格數(shù)據(jù)導(dǎo)入postgresql數(shù)據(jù)庫,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-03-03
pgsql之create user與create role的區(qū)別介紹
這篇文章主要介紹了pgsql之create user與create role的區(qū)別介紹,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01
PostgreSQL三種自增列sequence,serial,identity的用法區(qū)別
這篇文章主要介紹了PostgreSQL三種自增列sequence,serial,identity的用法區(qū)別,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-02-02
淺談Postgresql默認(rèn)端口5432你所不知道的一點(diǎn)
這篇文章主要介紹了淺談Postgresql默認(rèn)端口5432你所不知道的一點(diǎn),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01
PostgreSQL進(jìn)行重置密碼的方法小結(jié)
今天想測試一個PostgresSQL語法的 SQL,但是打開PostgresSQL之后沉默了,密碼是什么?日長月久的,漸漸就忘記了,于是開始了尋找密碼的道路,所以本文介紹了Postgresql忘記密碼,如何重置密碼,需要的朋友可以參考下2024-05-05
使用Postgresql 實(shí)現(xiàn)快速插入測試數(shù)據(jù)
這篇文章主要介紹了使用Postgresql 實(shí)現(xiàn)快速插入測試數(shù)據(jù),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01
PostgreSQL數(shù)據(jù)庫中修改表字段的常用命令小結(jié)
這篇文章主要給大家介紹了PostgreSQL數(shù)據(jù)庫中修改表字段的常用命令操作,文中有詳細(xì)的代碼示例供大家參考,具有一定的參考價值,需要的朋友可以參考下2023-12-12

