PostgreSQL 将多行合并转为列
需求将下列表格相同id的name拼接起来输出成一列
id | Name |
1 | peter |
1 | lily |
2 | john |
转化后效果:
,
id | Name |
1 | peter;lily |
2 | john; |
实现方式使用 array_to_string 和 array_agg 函数,具体语句如下:
string_agg(expression, delimiter) 把表达式变成一个数组
string_agg(expression, delimiter) 直接把一个表达式变成字符串
select id, array_to_string( array_agg(Name), ';' ) from table group by id
作者:碎心炼心
出处:http://www.cnblogs.com/karl-F
本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。