游标循环取值为什么比记录数多循环一次
答案:2 悬赏:80 手机版
解决时间 2021-01-31 18:32
- 提问者网友:太高姿态
- 2021-01-31 14:15
游标循环取值为什么比记录数多循环一次
最佳答案
- 五星知识达人网友:忘川信使
- 2021-01-31 15:43
你想循环几次,代码写出来看看。
全部回答
- 1楼网友:患得患失的劫
- 2021-01-31 16:46
一定要用游标??
以下是游标,供参考:
declare @id int,@address varchar(255)--这里假设你两个字段的字段类型
--定义游标
declare mycursor cursor for
select address
from 表
group by address
having count(*) > 1
--打开游标
open mycursor
--指定游标
fetch next from mycursor into @address
--当存在数据
while @@fetch_status = 0
begin
set @id = 0
--记录每个address,中status=1的最大id进@id
select @id = isnull(max(id),0)
from 表
where address = @address and status = 1
if @id > 0
--如果存在最大id,就删除address = @address 并不等于最大id的,这里假 设id列是唯一不存在重复,如果id不是唯一不重复,以下语句将有问题
delete
from 表
where id <> @id and address = @address
else
--如果重复记录中不存在status=1如何处理?这里没有做任何处理
print '未处理'
fetch next from mycursor into @address
end
--释放游标
close mycursor
deallocate mycursor
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯