首頁 >資料庫 >mysql教程 >如何使用 unnest() 在 PostgreSQL 中轉置表格(列到行)?

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

Linda Hamilton
Linda Hamilton原創
2025-01-04 08:34:45163瀏覽

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