在 SQL Server 中使用 GROUP BY 連接字串
在 SQL Server 中處理字串連線時,GROUP BY
子句是一個強大的工具。透過基於公共欄位對行進行分組,您可以有效地將相關的字串組合成單一連接結果。
讓我們來看一個場景:
您有一個表,包含 ID、Name 和 Value 欄位。您希望將所有具有相同 ID 的行連接到單行中,該行包含名為 Column 的列,其中包含格式為 Name:Value 的連接字串。
為此,您可以結合使用 FOR XML
和 PATH
與 GROUP BY
子句:
<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], STUFF(( SELECT ', ' + [Name] + ':' + CAST([Value] AS VARCHAR(MAX)) FROM #YourTable WHERE (ID = Results.ID) FOR XML PATH(''),TYPE).value('(./text())[1]','VARCHAR(MAX)') ,1,2,'') AS NameValues FROM #YourTable Results GROUP BY ID DROP TABLE #YourTable</code>
在這個查詢中:
FOR XML PATH('')
建立 Name 和 Value 欄位的 XML 表示形式,以逗號分隔。 PATH('')
子句指定連接的字串應被視為單一值。 STUFF
函數刪除連接字串開頭的逗號和空格。 GROUP BY
子句按 ID 分組結果。 結果,您將獲得以下輸出:
<code>ID NameValues 1 A:4, B:8 2 C:9</code>
以上是如何使用 GROUP BY 連線 SQL Server 中的字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!