注册 登录
编程论坛 SQL Server论坛

询问一个SQL中的用法,希望版主可以帮下忙

史前大暴龙 发布于 2007-09-15 23:02, 625 次点击

我有一张表:
ID Name
1 aa
1 bb
2 cc
3 dd
3 ee
我要写一个Function,要把上面的那表返回成下面那样子的table
ID Names
1 aa bb
2 cc
3 dd ee
就是以ID分组,将同一个ID上的所有Name拼一起,用空格将他们隔开.
不用游标的情况下,有什么办法可以做到那样子呢?谢谢了

6 回复
#2
shuzai19852007-09-15 23:42
create function b @id char(200)
returns varchar(3000)
as
begin
declare @r varchar(3000)
set @r=''
select @r=@r+','+name from 表名 where id=@id
return @r
return stuff(@r,1,1,'')
end
------------------------
select id,dbo.b(id)as name from 表名
大概这样,,没运行 不知道对不对  自己试一下.....
#3
史前大暴龙2007-09-16 22:21
谢谢上面的兄弟为我做的事,不过那个并不是我要的,我就是要弄整一张表,而不是某个ID的,我之前是用游标来做的,和你的方法差不多,但是用游标的话,效率太低,我觉得不好
#4
shuzai19852007-09-16 23:24

做出来就是这样的结果.....
ID Names
1 aa bb
2 cc
3 dd ee
弄出来是表的吧..    用的是函数....论坛上有这样的例子....你找找看

#5
史前大暴龙2007-09-17 10:03

已经弄好了,非常的感谢!

[此贴子已经被作者于2007-9-17 10:46:10编辑过]

#6
purana2007-09-17 17:12
弄出来了.不妨把你的方法贴出来.
#7
史前大暴龙2007-09-17 17:19
就是上面的那个方法啊.我之前没看清楚.
1