oracle数据库单表查重及去重

数据库清理表:Truncate Table [表名];

假设单表表名DCM_BMS_BG,其中有ID、BGCODE、BGNAME等字段。其中部分数据重复。

查询重复数据:

(1)select distinct  BGCODE from DCM_BMS_BG ;

        这句SQL只能显示非重复数据。

(2) select   bgcode   from   dcm_bms_bg group by   bgcode having count(bgcode ) > 1
          select * from dcm_bms_bg  where bgcode in  
         (select   bgcode from   dcm_bms_bg group by   bgcode having count(bgcode ) > 1) 
         order by  bgcode desc ;
         这两句显示重复数据

去除重复数据:

delete from dcm_bms_bg a where a.rowid! = (

    select max(b.rowid) from dcm_bms_bg  b

    where a.bgcode =b.bgcode and a.bgname = b.bgname

);

rowid 是Oracle自动隐藏的字段,每条记录都会有一个唯一的rowid,

我们可以通过保留重复字段中那个最大的rowid的记录,删除其他相同记录来保证数据的不同。

参考:Oracle单表去重复



        




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值