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

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

Linda Hamilton
发布: 2025-01-04 08:34:45
原创
170 人浏览过

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
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板