首页 >数据库 >mysql教程 >如何将 PostgreSQL 表的列转置为行?

如何将 PostgreSQL 表的列转置为行?

Patricia Arquette
Patricia Arquette原创
2025-01-05 15:53:461030浏览

How Can I Transpose a PostgreSQL Table's Columns into Rows?

转置表:列到行

问题陈述:

考虑具有以下格式的 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函数:

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['Sl.no', '用户名', '职称','工资'] )为原始表中的每一列创建一个新行,有效地创建列名称。
  • unnest(array[Sl.no, username, value3Count,salary]) 为原始表中的每个值创建一个新行,对应于列名称。
  • ORDER BY " Columns”确保行按列名称排序。

此查询将生成所需的转置表,其中列现在位于行。

以上是如何将 PostgreSQL 表的列转置为行?的详细内容。更多信息请关注PHP中文网其他相关文章!

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