Postgresql一行变多行unnest与string_to_array,多行变一行string_agg

Posted 程序媛一枚~

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Postgresql一行变多行unnest与string_to_array,多行变一行string_agg相关的知识,希望对你有一定的参考价值。

Postgresql一行变多行unnest与string_to_array,多行变一行string_agg

1. 源码

-- 创建表
create table tb(id int,value varchar(30));

-- 插入数据
insert into tb values(1,'aa,bb');
insert into tb values(2,'aaa,bbb,ccc');

-- 原始数据
SELECT * FROM tb

-- 一行变多行
select id,unnest(string_to_array(value,',')) from tb;

-- 多行变一行
select string_agg(value,'') from tb;

2. 效果图

  • 原始数据效果

  • 一列变多行

  • 多行变一行

参考

以上是关于Postgresql一行变多行unnest与string_to_array,多行变一行string_agg的主要内容,如果未能解决你的问题,请参考以下文章

PostgreSQl:选择多行并使其成为一行

PostgreSQL unnest 与空数组

使用 Psycopg2 和 unnest 时的“未知”数据类型

将 UNNEST 与 jOOQ 一起使用

具有 unnest 的 PostgreSQL 查询不返回空值的结果行

PostgreSQL:如何将多行的值放在不同的列中,并将所有值合并到一行中?