表的查询,合并,删除一起用的操作,怎么实现,感觉很难!

sisiz 2008-06-25 04:34:20
file2重复记录找到后删除其中的一个,并file1字段合并到上一个记录的file1字段,例子如下:
表tb
file1 file2
a aa
xz aa
b bb
xcv bb

....

tb 表要变成
file1 file2
a,xz aa
b,xcv bb

....
删除的记录是
xz aa
...全文
74 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
hanjs 2008-06-25
  • 打赏
  • 举报
回复
先建立个临时表

通过自定义函数取到你要的file1的结果。

然后删除不需要的,只保留一条,然后再根据临时表更新!
lgxyz 2008-06-25
  • 打赏
  • 举报
回复

create function ws(@file2 varchar(10))
returns varchar(8000)
as
begin
declare @ret varchar(8000)
select @ret = isnull(@ret+',','')+file1 from tb where file2 = @file2
return @ret
end
go


select distinct file1=dbo.ws(file2),file2 into #t from tb
delete tb
insert into tb (file1,file2 )
select file1,file2 from #t
lgxyz 2008-06-25
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 sisiz 的回复:]
我要更新表,把表物理的更新!
[/Quote]
像5楼提供的方法可以啊
你把数据放到临时表里,再
DELETE 原表,把临时表的数据复制过来就行了啊
中国风 2008-06-25
  • 打赏
  • 举报
回复
---引用函數,05用XML直接update
updaste t
set file1=dbo.函數(file2)
sisiz 2008-06-25
  • 打赏
  • 举报
回复
我要更新表,把表物理的更新!
sisiz 2008-06-25
  • 打赏
  • 举报
回复
我要更新表,老大们!
pt1314917 2008-06-25
  • 打赏
  • 举报
回复

--难道不是这样?
SQL code
create function ws(@file2 varchar(10))
returns varchar(8000)
as
begin
declare @ret varchar(8000)
select @ret = isnull(@ret+',','')+file1 from tb where file2 = @file2
return @ret
end
go


select distinct file1=dbo.ws(file2),file2 from tb



M1CR0S0FT 2008-06-25
  • 打赏
  • 举报
回复
你是要更新表还是显示的结果是那样。
中国风 2008-06-25
  • 打赏
  • 举报
回复
樓主不是問過了...
改一下表名和列名就行了。。
中国风 2008-06-25
  • 打赏
  • 举报
回复
2000\05合并方法:
http://topic.csdn.net/u/20080612/22/c850499f-bce3-4877-82d5-af2357857872.html
hery2002 2008-06-25
  • 打赏
  • 举报
回复
http://topic.csdn.net/u/20080612/22/c850499f-bce3-4877-82d5-af2357857872.html

34,591

社区成员

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

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