游标删除重复数据 (转载)

--创建表并填充数据 
create  table b_dist(id int,name varchar( 20), dept varchar( 20)) 
 
insert  into b_dist values( 1,‘abc‘,‘sales‘) 
insert  into b_dist values( 2,‘abc‘,‘sales‘) 
insert  into b_dist values( 3,‘abc‘,‘market‘) 
insert  into b_dist values( 4,‘abc‘,‘sales‘) 
insert  into b_dist values( 5,‘abc‘,‘infos‘) 
insert  into b_dist values( 6,‘abc‘,‘market‘) 
insert  into b_dist values( 7,‘abc‘,‘backup‘) 
 
 
--使用游标逐个比较, 把关键的字段要排序 
declare @id int 
declare @name varchar( 20
declare @dept varchar( 20
declare @prevname varchar( 20
declare @prevdept varchar( 20
 
declare cur  cursor  for  select id, name, dept  from b_dist  order  by name, dept 
open cur 
fetch  next  from cur  into @id, @name, @dept 
 
while @@FETCH_STATUS =  0 
begin 
if (@dept=@prevdept)  and (@name=@prevname)  
delete  from b_dist  where id=@id 
 
select @prevname=@name, @prevdept=@dept  
fetch  next  from cur  into @id, @name, @dept 
end 
 
close cur 
deallocate cur 
转自: http://www.cnblogs.com/qanholas/archive/2010/11/25/1888115.html

转载于:https://www.cnblogs.com/johnwonder/archive/2010/11/25/1888153.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值