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>
參數:
考慮名為 "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版本開始,可以用GROUP_CONCAT
的替代語法:
<code class="language-sql">SELECT id, string_agg(value, ',') AS concatenated_values FROM sample_data GROUP BY id;</code>
此語法等效於上面描述的 GROUP_CONCAT
語法。
透過使用 GROUP_CONCAT
或 string_agg
函數,您可以輕鬆地在PostgreSQL中連接多行資料。 選擇哪種語法取決於您的PostgreSQL版本和個人偏好。
以上是如何在 PostgreSQL 中連接多行值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!