如何删除SQL表里的从复数据

Franky668 2005-07-12 11:14:38
我有一个SQL表,他有五列
分别是:型号,厂家,数量,年份,封装

我想当“型号”相同的时候删除掉相同的数据,只留下一个


请问得怎么写
...全文
105 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
zlp321002 2005-07-12
--Blog:http://blog.csdn.net/zlp321002/archive/2005/01/12/249819.aspx 有个例子
回复
sheercony 2005-07-12
--取不重复型号经理---------------------------------------------------------------------------
if exists(select name from sysobjects where name='SBU_型号与型号经理对照表_temp')
drop table SBU_型号与型号经理对照表_temp

declare @cpbm varchar(11)
select top 0 * into SBU_型号与型号经理对照表_temp from SBU_型号与型号经理对照表
declare cur_temp cursor for
select distinct 产品编码 from SBU_型号与型号经理对照表
where 产品编码 in
(select distinct 产品编码
from SBU_型号与型号经理对照表
group by 产品编码
having count(*)>=2)
open cur_temp
fetch next from cur_temp into @cpbm
while @@fetch_status=0
begin

insert into SBU_型号与型号经理对照表_temp
select top 1 * from SBU_型号与型号经理对照表 where 产品编码=@cpbm

delete from SBU_型号与型号经理对照表 where 产品编码=@cpbm

fetch next from cur_temp into @cpbm
end
close cur_temp
DEALLOCATE cur_temp

大概的意思,如果重复的数据很少,效率比较高,反之,效率比较低,改改可以用
回复
Franky668 2005-07-12
用不了哦
回复
zlp321002 2005-07-12
--随机查询出来的
select 厂家,数量,年份,封装
,(select top 1 型号 from 表 where 型号 = d.型号 order by newid()) as 型号
--随机取c列的值,也可以用Max(型号),Min(型号), AVG(型号)
from 表 d
group by 型号
回复
Franky668 2005-07-12
我有一个SQL表,他有五列
分别是:型号,厂家,数量,年份,封装

我想当“型号”相同的时候删除掉相同的数据,只留下一个


请问得怎么写
请帮帮忙
回复
发帖
应用实例
创建于2007-09-28

2.7w+

社区成员

MS-SQL Server 应用实例
申请成为版主
帖子事件
创建了帖子
2005-07-12 11:14
社区公告
暂无公告