注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

银河军团大本营

光荣的军团,永远的丰碑 <坚持原创>

 
 
 

日志

 
 

MSSQL中用存储过程合并某一字段的值  

2013-10-26 15:22:04|  分类: SQL |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
/*以下代码示例是整理以前的资料所得,感觉有点意思*/

create table tb
KeyID int,
SecondID int,
KeyName varchar(16)
)
go

insert into tb values(1, 1, 'aaa');
insert into tb values(1, 2, 'bbb');
insert into tb values(1, 4, 'ddd');
insert into tb values(2, 1, '#####');
insert into tb values(2, 2, '@@');
insert into tb values(3, 3, 'OI&*%');
go

create procedure MergeNameByGroupID_tb
as
begin
set nocount on
declare @s varchar(255) /*合并结果不要太长*/
declare @id int
select KeyID, @s as KeyNames into #tb from tb group by KeyID
declare xxx cursor for select KeyID from #tb
open xxx
fetch next from xxx into @id
while @@FETCH_STATUS = 0
begin
select @s=''
select @s=@s + ',' + KeyName from tb where KeyID=@id
select @s=substring(@s, 2, 255)
update #tb set KeyNames=@s where KeyID=@id
fetch next from xxx into @id
end
close xxx
deallocate xxx
select * from #tb
set nocount off
end
GO

执行: exec MergeNameByGroupID_tb
结果:
KeyID KeyNames
1 aaa,bbb,ddd
2 #####,@@
3 OI&*%
  评论这张
 
阅读(545)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018