删除Oracle表中的重复行
来源:互联网 发布:linux smartctl 编辑:程序博客网 时间:2024/06/06 03:52
大概有两种方法:
方法1:基于rowid
delete from t a
where a.rowid !=
(
select max(b.rowid) from t b
where a.id = b.id and
a.col2 = b.col2
)
- SQL> select * from t;
- ID COL2
- ---------- --------------------------------
- 1 a
- 1 a
- 2 b
- 3 c
- SQL> delete from t a where a.rowid != (select max(b.rowid) from t b where a.id=b.id and a.col2 = b.col2);
- 已删除 1 行。
- SQL> select * from t;
- ID COL2
- ---------- --------------------------------
- 1 a
- 2 b
- 3 c
方法2:使用临时表
- SQL> select * from t;
- ID COL2
- ---------- --------------------------------
- 1 a
- 2 b
- 3 c
- SQL> insert into t values(1, 'a');
- 已创建 1 行。
- SQL> create table tt as select t.id, t.col2, max(t.rowid) dataid from t group by t.id, t.col2;
- 表已创建。
- SQL> delete from t a where a.rowid != (select b.dataid from tt b where a.id=b.id and a.col2=b.col2);
- 已删除 1 行。
- SQL> select * from t;
- ID COL2
- ---------- --------------------------------
- 2 b
- 3 c
- 1 a
- 删除Oracle表中的重复行
- Oracle 删除表中的重复行
- 删除数据库(ASE/ASA/Oracle)表中的重复行(小结)
- oracle删除表中的重复数据
- 删除表中的重复行
- oracle 删除数据表中的重复
- 删除Oracle中的重复记录
- oracle 删除重复行
- Oracle删除重复行
- oracle删除重复行
- Oracle删除重复行
- oracle删除重复行
- Oracle删除重复行
- oracle删除重复行
- 在ORACLE中如何删除表中的重复数据
- 在ORACLE中如何删除表中的重复数据
- oracle中删除一张表中的重复数据
- Oracle 查找并删除表中的重复记录
- 设计模式--结构型--组合模式
- IOS - 文字色彩
- “Terminate Server”; . setqt4env; ./helloQT4 -qws;
- hadoop相关软件下载
- 解决libreoffice打开文件乱码
- 删除Oracle表中的重复行
- Dinic模板
- JQuery的奇怪问题;
- 网页收藏
- 基本类型与引用类型区别
- C3沙龙上海第十次活动总结
- 简单得到系统时间
- 日志设计
- jsp使用javabean<jsp:useBean>