濮阳杆衣贸易有限公司

主頁 > 知識(shí)庫 > postgresql 實(shí)現(xiàn)sql多行語句合并一行

postgresql 實(shí)現(xiàn)sql多行語句合并一行

熱門標(biāo)簽:辦公外呼電話系統(tǒng) 美容工作室地圖標(biāo)注 合肥公司外呼系統(tǒng)運(yùn)營(yíng)商 打電話智能電銷機(jī)器人授權(quán) 外呼調(diào)研系統(tǒng) 地圖標(biāo)注和圖片名稱的區(qū)別 海豐有多少商家沒有地圖標(biāo)注 重慶自動(dòng)外呼系統(tǒng)定制 漯河外呼電話系統(tǒng)

多行語句合并一行

三個(gè)表關(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合并查詢同一列的多條記錄

昨天遇到一個(gè)sql問題,需要將一個(gè)表中的某一列的多行數(shù)據(jù)拼接成一行

例如:表中有2列數(shù)據(jù):

列1     列2

AAA     企業(yè)1

AAA     企業(yè)2

AAA     企業(yè)3

BBB     企業(yè)4

BBB     企業(yè)5

我想把這個(gè)表變成如下格式:

列1       列2

AAA       企業(yè)1,企業(yè)2,企業(yè)3

BBB       企業(yè)4,企業(yè)5

類似sqlServer中的stuff函數(shù)在PostgreSQL中如何實(shí)現(xiàn)呢?

查了一些資料,找到2種比較簡(jiǎn)單方便的方法,總結(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;

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • postgresql合并string_agg函數(shù)的實(shí)例
  • PostgreSQL 實(shí)現(xiàn)將多行合并轉(zhuǎn)為列
  • PostgreSQL實(shí)現(xiàn)批量插入、更新與合并操作的方法
  • PostgreSQL 字符串拆分與合并案例

標(biāo)簽:烏海 來賓 錦州 株洲 衡陽 珠海 晉城 蚌埠

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《postgresql 實(shí)現(xiàn)sql多行語句合并一行》,本文關(guān)鍵詞  postgresql,實(shí)現(xiàn),sql,多行,語句,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《postgresql 實(shí)現(xiàn)sql多行語句合并一行》相關(guān)的同類信息!
  • 本頁收集關(guān)于postgresql 實(shí)現(xiàn)sql多行語句合并一行的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    五寨县| 卓尼县| 库尔勒市| 靖西县| 呈贡县| 临武县| 台前县| 玉屏| 民权县| 宁波市| 萨嘎县| 阳泉市| 佳木斯市| 军事| 柯坪县| 垣曲县| 北安市| 阿拉善右旗| 巢湖市| 金塔县| 丹阳市| 滨州市| 福海县| 泸西县| 崇左市| 河源市| 津市市| 西藏| 龙州县| 万宁市| 新郑市| 上饶县| 兴隆县| 靖西县| 海门市| 治县。| 呼图壁县| 偃师市| 韩城市| 湾仔区| 班戈县|