首頁 >資料庫 >mysql教程 >如何使用單一 ID 連接 PostgreSQL 中多個記錄的欄位值?

如何使用單一 ID 連接 PostgreSQL 中多個記錄的欄位值?

Barbara Streisand
Barbara Streisand原創
2025-01-21 09:32:16279瀏覽

How to Concatenate Field Values in PostgreSQL for Multiple Records with a Single ID?

PostgreSQL 中針對多個記錄和單一 ID 連線欄位值

許多資料庫應用程式需要將與單一識別碼相關的多個值組合成單一連接字串。當查詢每個唯一 ID 具有多個記錄的表時,此操作特別有用。

MySQL 中的 GROUP_CONCAT 函數

在 MySQL 中,GROUP_CONCAT 函數提供了一種直接實現此目標的方法。但是,GROUP_CONCAT 函數在 PostgreSQL 中不可直接使用。

PostgreSQL 中 GROUP_CONCAT 的等效項

在 PostgreSQL 中,string_agg 函數是 MySQL 的 GROUP_CONCAT 的等效項。此函數可讓您連接字串,同時指定分隔符號(例如逗號)來分隔連接的值。

範例:使用 string_agg 的 PostgreSQL 查詢

考慮原始問題中提供的範例表:

id some_column
TM67 4
TM67 9
TM67 72
TM99 2
TM99 3

可以使用以下 PostgreSQL 查詢來連接每個唯一 id 的 some_column 欄位的值:

<code class="language-sql">SELECT
   id,
   string_agg(some_column::text, ',') AS values
FROM
   the_table
GROUP BY
   id;</code>

結果:

id values
TM67 4,9,72
TM99 2,3

此查詢為每個唯一 id 檢索一行,並將 some_column 列的值連接到一個帶有逗號作為分隔符號的單一字串中。

注意: string_agg 函數在 PostgreSQL 9.0 版本中引入。對於早期版本的 PostgreSQL,可以使用 generate_series 或 group_concat_agg 擴充功能作為替代方案來實現相同的功能。 some_column::text 的類型轉換確保了即使 some_column 不是文字類型,也能正確連接。

以上是如何使用單一 ID 連接 PostgreSQL 中多個記錄的欄位值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn