· [Java论坛][安全论坛][数据库论坛][操作系统论坛]
· [专题] IBM Rational高峰论坛 Windows 7十大功能
· [专题] 史上就危险7月 微软 BizSpark 计划介绍
· [IT技术周刊][IT资源下载专区][病毒求助专区]
· [热点] 我也能做CTO_赛迪连载 赛迪七夕特别行动
· [热点] Chrome 4.0采用V8引擎 Java开发编程规范

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

发布时间:2007.07.31 08:01     来源:赛迪网    作者:zise

很多人可能发现,无论是在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

1 2 下一页>>


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· 解析SQL Server7.0的六种数据移动方法 (07-30) · SQLServer悲观锁定和乐观锁定应用实例 (07-30)
· 快速掌握SqlServer下数据库链接的使用 (07-30) · 细化解析:SQL Server2005查询计划指南 (07-30)
· 不要在SQL Server中盲目地追求一句处理 (07-30) · 解析SQLServer怎样才能访问sybase中的表 (07-30)
· 怎样终止:SQL Server数据库的恢复过程 (07-29) · 轻松学会:配置SQL Server来做远程备份 (07-29)
· SQL/ASE SERVER 移植到同种平台的系统上 (07-29) · XP上不能安装SQL Server2000吗 (07-27)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
资讯 通信 IT产品 IT技术 信息化
专题:谷歌发布PC操作系统Chrome OS
·芯能量 新动力 兴经济:..
·专题:英特尔与AMD和解 ..
·专题:惠普27亿收购3Com..
专题:
·专题:诺基亚危局已现 ..
·六股势力角逐4G标准 中..
·专题:联通iPhone并不贵..
 
·惠普123459黑白激打家族..
·云计算格局初现 三大阵..
·分析:虚拟化在高性能计..
2009 IBM动态架构新动力论坛
·直播:第八届中国系统与..
·专题:置身智慧海洋——..
·专题:让物品开口说话 ..