在线急问,如何把一个字段里所有的记录相加得到一个字符串?

ghxghx 2003-08-22 03:36:35
我记得好像语句很简单,不过我以前的资料都不小心丢了,那位网友帮助一下,谢先

字段的类型为varchar型,不要使用游标和临时表
...全文
63 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ghxghx 2003-08-22
  • 打赏
  • 举报
回复
谢谢两位, tj_dns(愉快的登山者)的已经通过了。
caiyunxia(monkey) 你的我再仔细看看。
结贴
txlicenhe 2003-08-22
  • 打赏
  • 举报
回复
有表A,
id pid
1 1
1 2
1 3
2 1
2 2
3 1
如何化成表B:
id pid
1 1,2,3
2 1,2
3 1
或者是从表B变成A(不要用游标)
以前有相似的列子,现在找不到了,帮帮忙!


--1.创建一个合并的函数
create function fmerg(@id int)
returns varchar(8000)
as
begin
declare @str varchar(8000)
set @str=''
select @str=@str+','+cast(pid as varchar) from 表A where id=@id
set @str=right(@str,len(@str)-1)
return(@str)
End
go

--调用自定义函数得到结果
select distinct id,dbo.fmerg(id) from 表A
愉快的登山者 2003-08-22
  • 打赏
  • 举报
回复
declare @s varchar(8000)
set @s = ''
select @s = @s + colname from talbename
select @s
caiyunxia 2003-08-22
  • 打赏
  • 举报
回复
调用:
select id,dbo.getstr(id) as value
from (SELECT distinct ID FROM b ) A
愉快的登山者 2003-08-22
  • 打赏
  • 举报
回复
declare @s varchar(8000)
set @s = ''
select @s = @s + colname from talbename
select @s
caiyunxia 2003-08-22
  • 打赏
  • 举报
回复
建立函数
create function getstr(@gId int)
returns Nvarchar(2000)
as
begin
declare @str Nvarchar(2000)
set @str=N''
select @str=@str+N','+value from b
where id=@gid
set @str=right(@str,len(@str)-1)
return @str
end
GO


调用:
select id,dbo.getstr(gid) as value
from (SELECT distinct ID FROM b ) A

34,587

社区成员

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

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