sql server - 游标,查重

本文介绍如何使用SQL游标进行数据更新操作,并演示了单列和多列数据重复性的查询方法,对于数据库操作及数据清洗有指导意义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

游标

Declare @EntryTime  Nvarchar(100) --入职时间
Declare @EhrNo  Nvarchar(100) --Ehr编号
DECLARE CusPostCursor CURSOR FOR
select B.EntryTime,A.EhrNo from tableA A left join tableB B on A.EhrNo = B.EhrNo
--打开游标 
OPEN CusPostCursor
--读取游标中的值 遍历每条数据 获取
fetch next from CusPostCursor into @EntryTime,@EhrNo
while @@fetch_status<>-1
 begin
--业务
Update tableA set EntryTime = @EntryTime where EhrNo = @EhrNo

 --读取下个游标的值
fetch next from CusPostCursor into @EntryTime,@EhrNo

end
--关闭游标 
close CusPostCursor
--释放游标 
deallocate CusPostCursor

查询重复数据

--单列查重

select * from test
where name in (select name from test group by name having count
(name) > 1)            

--多列查重

SELECT a.* FROM test a,(
SELECT name,code
FROM test 
GROUP BY name,code
HAVING COUNT(1)>1

) AS b
WHERE a.name=b.name AND a.code=b.code

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值