VB 删除数据库中的重复信息

来源:百度知道 编辑:UC知道 时间:2024/06/02 18:27:14
运用SQL语句实现:
在一个数据库表中找出某些字段相同的信息,将它们删除,并将序号重新按顺序排列
某几个字段相同的整条信息
在重复信息中保留第一条,删除后面几条

假设field1 , field2 为 你要查找的字段
id 为主健

delete from table x,
(
select field1 , field2 ,min(id) as id
from table1
group by field1 , field2
)y
where x.field1 = y.field1 and x.field2 = y.field2 and x.id <> y.id

并将序号重新按顺序排列 , 只有用游标了。。。

declare @old_id int
declare @new_id int
--1.init

set @new_id = 1
--2.open cursor
declare cursor cslist for
select id from table1

open csstatus

--3.logic
fetch next from csstatus into @old_id
@while @@fetch_status = 0
begin
update table1 set id = @new_id where id =@old_id
set @new_id = @new_id + 1
fetch next from csstatus into @old_id
end

--2>.release column list
close cslist
deallocate cslist

select dist(某些字段相同的字段名,只能一个),fields from 表名 order by 字段名 group by 字段名(dist里面的那个字段)