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

如何使用 unnest() 转置 PostgreSQL 表?

Linda Hamilton
Linda Hamilton原创
2025-01-04 21:34:43485浏览

How Can I Transpose a PostgreSQL Table Using `unnest()`?

通过将列转换为行来转置表

在 PostgreSQL 中使用表时,可能存在需要转置表的情况,本质上是将列转换为行。对于各种数据分析目的,这是一个有用的转换。

问题陈述:

您有一个以以下格式输出数据的 PostgreSQL 函数或表:

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

您想要转置此表,以便输出显示在下面格式:

Sl.no 1 2 3 4 ...
Username A B C D ...
Designation XYZ RTS QWE HGD ...
Salary 10000 50000 20000 34343 ...

解决方案:

要实现这种转置,您可以使用 PostgreSQL 中的 unnest() 函数。此函数允许您从数组中提取元素并将它们视为单独的行。

以下是转置表的查询:

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"

说明:

  • array[...] 构造包含列名称和每个列对应值的数组
  • unnest() 函数从数组中提取每个元素并将它们视为单独的行。
  • ORDER BY 子句确保转置表具有原始列顺序。

此查询将输出所需的转置表格式。

参考:

unnest() 函数记录在 PostgreSQL 文档中的“convertingColumnsToRows”下。

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

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