有时候表中会有一些重复的数据,造成统计上的麻烦,需要删除它。整理出删除重复记录的方法
1首先建立表
2.制一些重复记录
3 删除
下面具体介绍删除操作
1.ORACLE 中的ROWID(唯一标示记录),可以根据ROWID的方法把重复记录删除
sql
先查询出重复记录
确定需要删除记录
删除
2.用分组查询出重复记录
先查询出重复记录
确定需要删除记录
删除
分组删除性能很低,介意不要使用
1首先建立表
create table TEST
(
MESSAGEID NUMBER(38) not null,
CREATIONDATE CHAR(15) not null,
MESSAGESIZE NUMBER(38) not null,
ID NUMBER(5) default 0 not null
)
2.制一些重复记录
3 删除
下面具体介绍删除操作
1.ORACLE 中的ROWID(唯一标示记录),可以根据ROWID的方法把重复记录删除
sql
先查询出重复记录
select *
from test
where rowid in (select a.rowid
from test a, test b
where a.rowid > b.rowid
and a.messageid = b.messageid)
确定需要删除记录
删除
delete from test where rowid in (select a.rowid
from test a, test b
where a.rowid > b.rowid
and a.messageid = b.messageid)
2.用分组查询出重复记录
先查询出重复记录
select *
from test
where id not in
(select min(id) from test group by messageid having count(*) > 1)
确定需要删除记录
删除
delete from (
select * from test where id not in
(select min(id) from test group by messageid having count(*) > 1))
分组删除性能很低,介意不要使用