科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道解析SQL Server 2005 溢用之:合并列值

解析SQL Server 2005 溢用之:合并列值

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

很多人可能发现,无论是在sql 2000还是在 sql 2005 中,都没有提供字符串的聚合函数, 所以当我们在处理下列要求时会比较麻烦, 但在 SQL Server 2005中, 这种情况得到了改善。

作者:赛迪网 zise 来源:天新网 2008年4月23日

关键字: Mssql SQL SQL Server 数据库

  • 评论
  • 分享微博
  • 分享邮件

很多人可能发现,无论是在sql 2000, 还是在 sql 2005 中,都没有提供字符串的聚合函数, 所以, 当我们在处理下列要求时,会比较麻烦, 但在 SQL Server 2005中, 这种情况得到了改善, 我们可以轻松地完成这项处理。

问题描述:

无论是在sql 2000, 还是在 sql 2005 中,
都没有提供字符串的聚合函数, 所以, 当
我们在处理下列要求时,会比较麻烦:

 

有表tb, 如下:

id    value

----- ------

1     aa

1     bb

2     aaa

2     bbb

2     ccc

 

需要得到结果:

id     values

------ -----------

1      aa,bb

2      aaa,bbb,ccc

 

即, group by id, 求 value 的和(字符串相加)

1. 旧的解决方法

创建处理函数
CREATE FUNCTION dbo.f_str(@id int)

RETURNS varchar(8000)

AS

BEGIN

    DECLARE @r varchar(8000)

    SET @r = ''

    SELECT @r = @r + ',' + value

    FROM tb

    WHERE id=@id

    RETURN STUFF(@r, 1, 1, '')

END

GO

 

-- 调用函数

SELECt id, values=dbo.f_str(id) 

FROM tb 

GROUP BY id
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章