首页 >数据库 >mysql教程 >如何在 SQL Server 中连接组内的值?

如何在 SQL Server 中连接组内的值?

Mary-Kate Olsen
Mary-Kate Olsen原创
2025-01-09 12:36:48183浏览

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn