七叶笔记 » 数据库 » PostgreSQL 实现列转行问题

PostgreSQL 实现列转行问题

2 列转行写法

写法1:

string_agg

写法2:

array_to_string(ARRAY_AGG (text),',')

补充:PostgreSQL行列转换(兼容oracle pivot unpivot)

oracle11g开始内置了数据透视表pivot table这一功能,可以用来实现行列转换的功能,但是在数据量较大的时候使用性能就会较差。

pivot语法为:

oracle pivot使用例子:

–创建测试表并插入数据

–使用pivot进行行列转换

我们还可以使用unpivot来实现列转行。

unpivot语法为:

oracle unpivot使用例子:

–创建测试表并插入数据

–使用unpivot进行列转行

那么在pg中该如何实现oracle的pivot/unpivot的行列转行功能呢?pg中自带的tablefunc插件可以实现,我们可以使用该插件中的crosstab函数接口进行行列转换。

pg行转列例子:

–建表插入测试数据

–行转列

–列转行

以上为个人经验,希望能给大家一个参考,也希望大家多多支持七叶笔记。如有错误或未考虑完全的地方,望不吝赐教。

相关文章