Rumah > Artikel > pangkalan data > 消除sql2000里的重复数据
游标版 declare @id1 int,@oldid int,@e_REcordid int ,@Olde_REcordid int DECLARE price CURSOR FOR SELECT id ,E_recordId FROM evaeve order by E_recordId desc OPEN price FETCH NEXT FROM price into @oldid,@Olde_REcordid while @@fetch_status = 0
游标版
declare @id1 int,@oldid int,@e_REcordid int ,@Olde_REcordid int
DECLARE price CURSOR
FOR SELECT id ,E_recordId FROM evaeve order by E_recordId desc
OPEN price
FETCH NEXT FROM price into @oldid,@Olde_REcordid
while @@fetch_status = 0
begin
FETCH NEXT FROM price
into @id1,@e_REcordid
if @Olde_REcordid=@e_REcordid
BEGIN
delete from evaeve where id=@id1
end
set @oldid=@id1
set @Olde_REcordid=@e_REcordid
end
close price
DEALLOCATE price
sql语句版
delete from evaeve where id not in( select max(id) from evaeve group by E_RecordID)
declare @id1 int,@oldid int,@e_REcordid int ,@Olde_REcordid int DECLARE price CURSOR FOR SELECT id ,E_recordId FROM evaeve order by E_recordId desc OPEN price FETCH NEXT FROM price into @oldid,@Olde_REcordid while @@fetch_status = 0 begin FETCH NEXT FROM price into @id1,@e_REcordid if @Olde_REcordid=@e_REcordid BEGIN delete from evaeve where id=@id1 end set @oldid=@id1 set @Olde_REcordid=@e_REcordid end close price DEALLOCATE price delete from evaeve where id not in( select max(id) from evaeve group by E_RecordID)