首页 > 数据库 > 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
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板