删除重复

来源:互联网 发布:淘宝哪家mcm高仿比较好 编辑:程序博客网 时间:2024/05/01 04:31

问题:不小心批量复制了数据 。



insert into AA select sys_guid(),

  BFJE               ,
  DJBT               ,
  NURSECOST          ,
  QNBT               ,
  YCXSHBT            
from AA d11 where d11.sjtlbcode='01' and d11.inf='2017' and d11.iyf='2' and d11.sareacode='632224' and d11.ideletemark=0 ;



处理方式 根据rowid 处理:
delete from AA where  rowid in(
select  max(rowid) from AA d11 where d11.sjtlbcode='01' and d11.inf='2017' and d11.iyf='2' and d11.sareacode='632224' and d11.ideletemark=0
group by d11.shzidcard having count(0)>1
)


覆盖知识点:

rownum和rowid都是伪列,但是两者的根本是不同的,rownum是根据sql查询出的结果给每行分配一个逻辑编号,所以你的sql不同也就会导致最终rownum不同,但是rowid是物理结构上的,在每条记录insert到数据库中时,都会有一个唯一的物理记录 


SQLSERVER:

 ROW_NUMBER() OVER (ORDER BY GPSX DESC) as SEQ 

原创粉丝点击