使用 SQL Server 的 GROUP BY 連線逗號分隔值
SQL Server 的 GROUP BY
子句對於基於共用屬性聚合資料非常有用。 但是,將多個值組合成單一逗號分隔的字串需要稍微更高級的方法。這就是 STUFF
函數發揮作用的地方。
以下是如何使用 GROUP BY
和 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>
讓我們來剖析這個查詢:
SELECT
: 這將檢索 ReportId
和聚合的 Email
字串。 STUFF
函數: 這巧妙地連接電子郵件,在每個電子郵件之間插入逗號和空格。 SELECT
: 此子查詢會擷取與特定 ReportId
相關的所有電子郵件。 FOR XML PATH('')
: 這會將內部查詢的結果集轉換為 XML 字串,為連接提供方便的格式。 WHERE
子句: 這可確保內部查詢僅選擇與外部查詢中的 ReportId
相符的電子郵件。 將此查詢應用於範例資料將產生以下結果:
ReportId | |
---|---|
1 | [email protected], [email protected] |
2 | [email protected] |
3 | [email protected], [email protected] |
該技術有效地產生逗號分隔的列表,簡化了聚合資料的處理。
以上是如何使用 SQL Server 的 GROUP BY 子句聚合逗號分隔的值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!