首頁 > 資料庫 > mysql教程 > 如何在 PostgreSQL 中連接多行值?

如何在 PostgreSQL 中連接多行值?

Patricia Arquette
發布: 2025-01-21 09:22:14
原創
203 人瀏覽過

How Can I Concatenate Values Across Multiple Rows in PostgreSQL?

PostgreSQL 資料行值連線

在關係型資料庫操作中,常常需要在取得最終結果前先處理資料。一個常見任務是基於公共標識符連接多行的值。在PostgreSQL中,GROUP_CONCAT 函數為此提供了一個簡單的解決方案。

GROUP_CONCAT 函數

PostgreSQL 9.0版本及以上引入了GROUP_CONCAT聚合函數,它接收列中的一組值並將它們連接成單一字串。 GROUP_CONCAT的語法如下:

<code class="language-sql">GROUP_CONCAT(DISTINCT expression [ORDER BY expression] [separator])</code>
登入後複製

參數:

  • DISTINCT: (可選) 防止重複值包含在結果中。
  • expression: 要連接的欄位或表達式。
  • ORDER BY: (可選) 指定連接值的順序。
  • separator: (可選) 用來分隔連接值的字元或字串。預設為逗號 (,)。

範例

考慮名為 "sample_data" 的以下表格:

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

要連接每個唯一 "id" 的 "value" 欄位中的值,我們可以使用如下所示的 GROUP_CONCAT

<code class="language-sql">SELECT id, GROUP_CONCAT(value) AS concatenated_values
FROM sample_data
GROUP BY id;</code>
登入後複製

此查詢將產生以下輸出:

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

如您所見,每個 "id" 的值已連接並以逗號分隔。

PostgreSQL 9.0 的替代語法

從PostgreSQL 9.0版本開始,可以用GROUP_CONCAT的替代語法:

<code class="language-sql">SELECT id, string_agg(value, ',') AS concatenated_values
FROM sample_data
GROUP BY id;</code>
登入後複製

此語法等效於上面描述的 GROUP_CONCAT 語法。

結論

透過使用 GROUP_CONCATstring_agg 函數,您可以輕鬆地在PostgreSQL中連接多行資料。 選擇哪種語法取決於您的PostgreSQL版本和個人偏好。

以上是如何在 PostgreSQL 中連接多行值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板