oracle 查找或删除重复记录的语句

--oracle查找重复记录
select * from  tableA  a where a.rowid>=(select min(rowid) from tableA b where a.column=b.column)

--oracle删除重复记录
delete from  tableA  a where a.rowid>=(select min(rowid) from tableB b where a.column=b.column)

--oracle删除重复记录(保留一条)
delete from  tableA  a where a.rowid>(select min(rowid) from tableB b where a.column=b.column)

时间: 2024-10-11 00:18:29

oracle 查找或删除重复记录的语句的相关文章

oracle中查找和删除重复记录的几种方法总结

平时工作中可能会遇到当试图对库表中的某一列或几列创建唯一索引时,系统提示 ORA-01452 :不能创建唯一索引,发现重复记录. 下面总结一下几种查找和删除重复记录的方法(以表CZ为例): 表CZ的结构如下: 1 SQL> desc cz 2 Name Null? Type 3 ------------------------------------------------------------------- 4 C1 NUMBER(10) 5 C10 NUMBER(5) 6 C20 VARC

ORACLE查询并删除重复记录

查询及删除重复记录的SQL语句 1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断select * from peoplewhere peopleId in (select   peopleId from   people group by   peopleId having count(peopleId) > 1) 2.删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录delete from people where

Oracle 查询并删除重复记录的SQL语句

查询及删除重复记录的SQL语句 1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断select * from peoplewhere peopleId in (select   peopleId from   people group by   peopleId having count(peopleId) > 1) 2.删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录delete from people where

ORACLE查询删除重复记录三种方法

本文列举了3种删除重复记录的方法,分别是rowid.group by和distinct,小伙伴们可以参考一下. 比如现在有一人员表 (表名:peosons) 若想将姓名.身份证号.住址这三个字段完全相同的记录查询出来 代码如下: select p1.*   from persons  p1,persons  p2   where p1.id<>p2.id   and  p1.cardid = p2.cardid and p1.pname = p2.pname and p1.address =

mysql删除重复记录语句的方法

例如: id name value 1 a pp 2 a pp 3 b iii 4 b pp 5 b pp 6 c pp 7 c pp 8 c iii id是主键 要求得到这样的结果 id name value 1 a pp 3 b iii 4 b pp 6 c pp 8 c iii 方法1 delete YourTable where [id] not in ( select max([id]) from YourTable group by (name + value)) 方法2 delet

Oracle查询重复数据与删除重复记录方法

比如现在有一人员表 (表名:peosons) drop table PERSONS; create table PERSONS ( PNAME VARCHAR2(50), CARDID VARCHAR2(18), ADDRESS VARCHAR2(100) ); insert into persons ( PNAME, CARDID, ADDRESS) values ( '张三', '430682199002121010', '深圳'); insert into persons ( PNAME,

初探oracle删除重复记录,只保留rowid最小的记录

如题,初探oracle删除重复记录,只保留rowid最小的记录(rowid可以反映数据插入到数据库中的顺序) 一.删除重复记录可以使用多种方法,如下只是介绍了两种方法(exist和in两种). 1.首先创建一个测试表. create table my_users( id number, username varchar2(20), sal number ) 2.插入测试数据 begin for i in 1..10 loop insert into my_users values(i,'carl

mysql 删除重复记录语句

mysql 根据条件删除重复记录 只保留最小id的重复数据 DELETEFROM newsWHERE news_id IN ( SELECT a.news_id FROM ( SELECT news_id FROM news WHERE flag = 1 GROUP BY news_id HAVING count(news_id) > 1 ) a )AND posid NOT IN (SELECT b.posid from ( SELECT min(posid) as posid FROM ne

查重 查重复记录 删除重复记录

select * from b; ID AID NAME ---------- ---------- -------------------------------------------------------------------------------- 1 1 b1 2 2 b2 3 2 b2 4 2 b3 这是表的记录   : --根据 aid 和 name 进行同时查询 : --第一种 select * from b b1 where exists ( select 1 from