多条记录变成用分隔符分隔(,)的字符串

frankwong 2004-10-07 10:52:00
表tab
字段1 字段2
---------------
A 1
A 3
B 2
B 3
B 4

希望得到效果:
字段1 字段3
A 1,3
B 2,3,4

要求:能否不用临时表,函数?


...全文
117 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
frankwong 2004-10-07
  • 打赏
  • 举报
回复
多谢两位踊跃发言,快得连结贴也提示出错!
'','' --> ',' 谢邹建
wzh1215 2004-10-07
  • 打赏
  • 举报
回复
否则要多浪费一个字段了!
wzh1215 2004-10-07
  • 打赏
  • 举报
回复
不过还是用了临时表!
zjcxc 元老 2004-10-07
  • 打赏
  • 举报
回复
楼上还是没有超过临时表/函数的范围.
wzh1215 2004-10-07
  • 打赏
  • 举报
回复
晕,居然有人才我前面写出来了!
wzh1215 2004-10-07
  • 打赏
  • 举报
回复
create table #aa(id int identity(1,1),col1 char(1),col2 int,col3 varchar(30))
insert #aa(col1,col2)
select 'A' , 1
union all select 'A' , 3
union all select 'B' , 2
union all select 'B' , 3
union all select 'B' , 4

declare @ii varchar(30),@col1 char(1),@col3 varchar(10)
set @ii=''
set @col3=''
update #aa
set col3=@col3,@col3=(case when col1=@col1 then @col3+','+cast(col2 as varchar(10)) else cast(col2 as varchar(10)) end),@col1=col1
from #aa
select col1,max(col3) from #aa group by col1
drop table #aa
---结果:
col1 col3
---- ------------------------------
A 1,3
B 2,3,4

(2 row(s) affected)
zjcxc 元老 2004-10-07
  • 打赏
  • 举报
回复
'','' --> ','

不然你还要怎么样/'
frankwong 2004-10-07
  • 打赏
  • 举报
回复
看来只能使用以下方法了:
create table tb(F1 varchar(10),F2 varchar(10))
insert tb select '00000001','Sandy'
union all select '00000001','Bob'
union all select '00000002', 'Sandy'
union all select '00000002', 'Don'
union all select '00000002', 'Chris'
union all select '00000003' ,'Karol'
union all select '00000004','Bob'
union all select '00000005' ,'Sandy'
union all select '00000005' ,'Jamie'
union all select '00000005','Bob'
go
set nocount on
select f1,f2=cast(f2 as varchar(8000)) into #t from tb order by f1
declare @f1 varchar(10),@r varchar(8000)
update #t set @r=case f1 when @f1 then @r+'',''+f2 else f2 end,f2=@r,@f1=f1
select F1,F2=max(f2) from #t group by f1
zjcxc 元老 2004-10-07
  • 打赏
  • 举报
回复
或者用游标.
zjcxc 元老 2004-10-07
  • 打赏
  • 举报
回复
不用临时表,不用函数? 那用什么? 用程序写

34,873

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧