怎么把重复的记录合成一条?

来源:百度知道 编辑:UC知道 时间:2024/06/04 17:15:57
我用VB操作一个数据库,表里面有一些记录,如
序号 姓名 年龄 物品
1 张三 20 A
2 张三 20 B
3 李四 12 A
4 李四 12 B
5 李四 12 C
.
.
.

想将重复的记录合并,变成如下

序号 姓名 年龄 物品
1 张三 20 A,B
2 李四 12 A,B,C
.
.
.
请问可以使用SQL来实现吗,如果不能,怎么写这段程序?

不知道为什么,系统老说我回答过你的问题了,弄得我编辑了2次。。。
废话不说,开始正题。我这也是从网上找来的希望能帮到你

假设你的表名为test,列名为 id name age item
第一步,创建一个函数
create function getstr(@column int)
returns varchar(8000)
as
begin
declare @str varchar(8000)
set @str=''
select @str=@str+','+rtrim(item) from test where age=@column
select @str=right(@str,len(@str)-1) where @str<>''

return @str
end
如果要修改的话,注意修改表名test,和列名age和item。
第二步,使用这个函数
select name,age,dbo.getstr(age) from test group by name,age
看看结果吧,祝你好运!

参照实现方法,不明白时再问

select xm,nl,wmsys.wm_concat(wp) from tab group by xm,nl