The Perfect Day

分享技术,编写未来

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  73 随笔 :: 0 文章 :: 24 评论 :: 86775 阅读
< 2025年1月 >
29 30 31 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 1
2 3 4 5 6 7 8

利用游标实现

CREATE table userinfo
(
   name 
char(10),
   sex 
char(4),
   phone 
char(10)
)

insert userinfo select 'aaa','','12345' union all
                
select 'bbb','','12345' union all
                
select 'aaa','','12345' union all
                
select 'bbb','','12345' union all
                
select 'aaa','','12345' union all
                
select 'ccc','','12345' union all
                
select 'aaa','','1235' 

--(1)定义
declare first cursor
for  select count(*as num ,name from userinfo
     
group by name

--(2)打开
open first

--(3)操作
declare @num int,@name varchar(10)
fetch next from first into @num,@name
while(@@fetch_status=0--返回被 FETCH 语句执行的最后游标的状态,而不是任何当前被连接打开的游标的状态。
                        --=0表示FETCH 语句成功
begin
     
declare second cursor for select * from userinfo where name=@name
     
     
open second
     
     
fetch next from second
     
while(@num >1)
     
begin
        
delete from userinfo where current of second
        
set @num=@num-1
        
fetch next from second
     
end
     
close second
     
deallocate second --删除游标引用
     fetch next from first into @num,@name
end

close first
deallocate first

SELECT * FROM USERINFO


 

posted on   StephenJu  阅读(324)  评论(0编辑  收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示