SQL Server:使用 GROUP BY 連線報告 ID 群組內的電子郵件
在 SQL Server 中,有效地對資料進行分組並將相關值組合成單一字串是一項常見任務。 GROUP BY
子句根據指定的列對行進行分組,從而允許使用聚合函數進行資料操作和計算。
依報告 ID 組合電子郵件
想像一個這樣結構的表格:
<code>ID ReportId Email 1 1 [email protected] 2 2 [email protected] 3 1 [email protected] 4 3 [email protected] 5 3 [email protected]</code>
目標是按 ReportId
將行分組,並將對應的電子郵件連接成逗號分隔的字串。 所需的輸出:
<code>ReportId Email 1 [email protected], [email protected] 2 [email protected] 3 [email protected], [email protected]</code>
利用 STUFF() 函數
這是使用子查詢中的 STUFF()
函數有效實現的:
<code class="language-sql">SELECT ReportId, Email = STUFF((SELECT ', ' + Email FROM your_table b WHERE b.ReportId = a.ReportId FOR XML PATH('')), 1, 2, '') FROM your_table a GROUP BY ReportId</code>
詳細說明:
ReportId
的所有電子郵件,並在每封電子郵件前面加上逗號和空格。 FOR XML PATH('')
將子查詢結果轉換為單一 XML 字串。 STUFF()
從 XML 字串中刪除前導逗號和空格,從而得到所需的逗號分隔電子郵件清單。 進一步考慮:
SUM()
、AVG()
)可以與GROUP BY
一起使用,對分組資料進行各種計算。 STUFF()
是一個高度通用的函數,用於各種字串操作操作。 以上是如何使用 SQL Server 的 GROUP BY 子句按報表 ID 連線電子郵件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!