首頁 > 資料庫 > mysql教程 > 如何在 SQL Server 中連接群組內的值?

如何在 SQL Server 中連接群組內的值?

Mary-Kate Olsen
發布: 2025-01-09 12:36:48
原創
171 人瀏覽過

How to Concatenate Values Within Groups in SQL Server?

在 SQL Server 中連接群組

要在 SQL Server 2005 中連接群組內的值,請考慮使用使用者定義的聚合函數。

解:

  1. 建立使用者定義的聚合函數 (UDAF):

    <code class="language-sql"> CREATE AGGREGATE [dbo].[ConcatValues] (@str VARCHAR(MAX))
     RETURNS VARCHAR(MAX)
     AS
     BEGIN
         DECLARE @result VARCHAR(MAX) = '',
                 @delim VARCHAR(2) = '';
         WHILE @str IS NOT NULL
         BEGIN
             SET @result = @result + @delim + @str;
             SET @delim = ',';
             SET @str = NEXT VALUE;
         END;
         RETURN @result;
     END;</code>
    登入後複製
  2. 在查詢中使用 UDAF:

    <code class="language-sql"> SELECT Id, [dbo].[ConcatValues](Value) AS ConcatenatedValues
     FROM YourTable
     GROUP BY Id;</code>
    登入後複製

結果:

Id ConcatenatedValues
1 'A,B'
2 'C'

請注意,此解決方案使用了一個 WHILE 循環來迭代輸入值,並使用逗號作為分隔符號將它們連接起來。 這與原始範例中的 FOR 迴圈有所不同,但實作了相同的功能,並且在 SQL Server 中更常見。 NEXT VALUE 用來取得聚合函數的下一個輸入值。 YourTable 應該替換為您實際的表名。

以上是如何在 SQL Server 中連接群組內的值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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