首页 >数据库 >mysql教程 >如何使用 unnest() 在 PostgreSQL 中转置表(列到行)?

如何使用 unnest() 在 PostgreSQL 中转置表(列到行)?

Linda Hamilton
Linda Hamilton原创
2025-01-04 08:34:45141浏览

How Can I Transpose Tables (Columns to Rows) in PostgreSQL Using `unnest()`?

转置表:在 PostgreSQL 中将列转换为行

通过将列旋转为行来转换表格数据可能是数据操作中的一项有价值的操作。在 PostgreSQL 中,有一些方法可以有效地实现这种转置。其中一种方法涉及利用 unnest() 函数。

使用 unnest() 的解决方案

要转置表,我们可以结合使用 unnest() 和 ARRAY 聚合。以下查询演示了该技术:

SELECT
   unnest(array['Sl.no', 'username', 'Designation','salary']) AS "Columns",
   unnest(array[Sl.no, username, value3Count,salary]) AS "Values"
FROM view_name
ORDER BY "Columns"

解释

  • unnest() 函数将数组解包为单个元素。在本例中,它从原始表中提取列名和相应的值。
  • ARRAY 聚合创建数组来保存每行的列名和值。
  • ORDER BY 子句排序按列名显示结果,以确保转置表具有所需的结果

输出:

查询返回一个转置表,格式如下:

Columns Values
Sl.no 1
username A
Designation XYZ
salary 10000
Sl.no 2
username B
Designation RTS
salary 50000
Sl.no 3
username C
Designation QWE
salary 20000
Sl.no 4
username D
Designation HGD
salary 34343

注意:原始表查询中的名称可能会有所不同,具体取决于您的实际表名称。

以上是如何使用 unnest() 在 PostgreSQL 中转置表(列到行)?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn