首頁 > 資料庫 > mysql教程 > 如何使用 GROUP BY 連線 SQL Server 中的字串?

如何使用 GROUP BY 連線 SQL Server 中的字串?

DDD
發布: 2025-01-25 02:28:10
原創
331 人瀏覽過

How Can I Concatenate Strings in SQL Server Using GROUP BY?

在 SQL Server 中使用 GROUP BY 連接字串

在 SQL Server 中處理字串連線時,GROUP BY 子句是一個強大的工具。透過基於公共欄位對行進行分組,您可以有效地將相關的字串組合成單一連接結果。

讓我們來看一個場景:

您有一個表,包含 ID、Name 和 Value 欄位。您希望將所有具有相同 ID 的行連接到單行中,該行包含名為 Column 的列,其中包含格式為 Name:Value 的連接字串。

為此,您可以結合使用 FOR XMLPATHGROUP 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中文網其他相關文章!

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