首頁 > 資料庫 > mysql教程 > 如何使用SQL Server中的Group串聯字符串?

如何使用SQL Server中的Group串聯字符串?

Susan Sarandon
發布: 2025-01-25 02:15:12
原創
522 人瀏覽過

How to Concatenate Strings Using GROUP BY in SQL Server?

使用 SQL Server 中的 GROUP BY 語句連接字符串

在許多數據分析場景中,需要將按公共標識符分組的多個行的字符串連接起來。這允許您有效地匯總和操作數據以用於報告目的。

在 SQL Server 中實現此目的,您可以利用強大的 GROUP BY 子句以及對 FOR XML 和 PATH 函數的巧妙使用。這種方法提供了一種高效且直接的解決方案,無需使用游標、循環或用戶定義函數。

考慮以下示例數據:

<code>id       Name       Value
1          A          4
1          B          8
2          C          9</code>
登入後複製

您的目標是將此數據轉換為以下輸出:

<code>id          Column
1          A:4, B:8
2          C:9</code>
登入後複製

要完成此任務,您可以使用以下 SQL 查詢:

CREATE TABLE #YourTable ([ID] INT, [Name] CHAR(1), [Value] INT)

INSERT INTO #YourTable ([ID],[Name],[Value]) VALUES (1,'A',4)
INSERT INTO #YourTable ([ID],[Name],[Value]) VALUES (1,'B',8)
INSERT INTO #YourTable ([ID],[Name],[Value]) VALUES (2,'C',9)

SELECT 
  [ID],
  STRING_AGG([Name] + ':' + CAST([Value] AS VARCHAR(MAX)), ', ') AS NameValues
FROM #YourTable 
GROUP BY ID

DROP TABLE #YourTable
登入後複製

讓我們分解一下查詢:

  • STRING_AGG 函數將每個組內的字符串連接成逗號分隔的列表。 這提供了比舊方法更簡潔、更易讀的解決方案。

此 SQL 查詢有效地按 ID 列對數據進行分組,並連接每個組內每一行的 Name 和 Value 列,從而得到所需的輸出。 使用 STRING_AGG 簡化了代碼,使其更易於理解和維護。 對於 SQL Server 2017 及更高版本,強烈推薦使用此方法。

以上是如何使用SQL Server中的Group串聯字符串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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