使用 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 查詢:
<code class="language-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</code>
讓我們分解一下查詢:
STRING_AGG
函數將每個組內的字符串連接成逗號分隔的列表。 這提供了比舊方法更簡潔、更易讀的解決方案。 此 SQL 查詢有效地按 ID 列對數據進行分組,並連接每個組內每一行的 Name 和 Value 列,從而得到所需的輸出。 使用 STRING_AGG
簡化了代碼,使其更易於理解和維護。 對於 SQL Server 2017 及更高版本,強烈推薦使用此方法。
以上是如何使用SQL Server中的Group串聯字符串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!