--这条语句也能够实现上述功能,但不好测试了,数据已经被我删除了
--删除条件一:有重复数据的记录;条件二:保留最小rowid的记录。
```sql
select *
--delete
from b2e_cash_response b
where
b.vchnum in (select b.vchnum from b2e_cash_response b where b.cash_source_flag = 'B' group by b.vchnum,b.direction having count(*) > 1 )
and rowid not in (select min(rowid) from b2e_cash_response b where b.cash_source_flag = 'B' group by b.vchnum,b.direction having count(*) > 1);
--
select *
-- delete
from ifb_consign ifc
where (ifc.biz_pk_id, ifc.biz_system_code) in (
select ifc1.biz_pk_id, ifc1.biz_system_code from ifb_consign ifc1 where (ifc1.biz_pk_id, ifc1.biz_system_code) in (
select ifb.job_id,ifb.biz_system_code from ifb_freight ifb where ifb.edi_request_uuid in ('265555596','265555091','265553836','265555340')
)
group by ifc1.biz_pk_id,ifc1.biz_system_code
having count(*) > 1 )
and rowid not in (
select min(rowid) from ifb_consign ifc1 where (ifc1.biz_pk_id, ifc1.biz_system_code) in (
select ifb.job_id,ifb.biz_system_code from ifb_freight ifb where ifb.edi_request_uuid in ('265555596','265555091','265553836','265555340')
)
group by ifc1.biz_pk_id
having count(*) > 1
)
;
Oracle数据重复删除重复数据保留一条
最新推荐文章于 2024-01-23 15:20:29 发布