oracle单表删除重复数据
2013-11-28 16:48
232 查看
1.建立一个mytesttable表
CREATE TABLE mytesttable(
idno NUMBER(2),
val NUMBER(2)
);
2.插入测试数据
INSERT INTO mytesttable VALUES(1,2);
INSERT INTO mytesttable VALUES(2,2);
INSERT INTO mytesttable VALUES(3,1);
INSERT INTO mytesttable VALUES(4,3);
INSERT INTO mytesttable VALUES(5,6);
INSERT INTO mytesttable VALUES(6,3);
INSERT INTO mytesttable VALUES(7,7);
3.通过rowid只除去重复的数据并保留最新数据和不重复数据(这里是根据val字段的值)
DELETE FROM MYTESTTABLE MT
WHERE MT.ROWID NOT IN
(SELECT MAX(ROWID) FROM MYTESTTABLE GROUP BY VAL);
高手有高招请指教一下更好的方法,我这是抛砖引玉。
CREATE TABLE mytesttable(
idno NUMBER(2),
val NUMBER(2)
);
2.插入测试数据
INSERT INTO mytesttable VALUES(1,2);
INSERT INTO mytesttable VALUES(2,2);
INSERT INTO mytesttable VALUES(3,1);
INSERT INTO mytesttable VALUES(4,3);
INSERT INTO mytesttable VALUES(5,6);
INSERT INTO mytesttable VALUES(6,3);
INSERT INTO mytesttable VALUES(7,7);
3.通过rowid只除去重复的数据并保留最新数据和不重复数据(这里是根据val字段的值)
DELETE FROM MYTESTTABLE MT
WHERE MT.ROWID NOT IN
(SELECT MAX(ROWID) FROM MYTESTTABLE GROUP BY VAL);
高手有高招请指教一下更好的方法,我这是抛砖引玉。
相关文章推荐
- [Oracle] 别被View 整伤了
- [Oracle] 别被View 整伤了
- centos55_oracle11gr2_install
- linux下关闭Oracle及关机
- Oracle 11.2.0.3 ORA-12012ORA-29280 ORA-06512
- Oracle表碎片整理操作步骤详解
- 新接触oracle数据库需要了解的东西
- Oracle从10g升级到11g详细步骤
- ORACLE EXP不能导出空表的原因分析及解决方法
- Oracle内存全面分析(12)
- Oracle内存全面分析(11)
- Oracle内存全面分析(10)
- Oracle内存全面分析(9)
- Oracle内存全面分析(8)
- Oracle内存全面分析(7)
- Oracle内存全面分析(6)
- Oracle内存全面分析(5)
- How To Manually Remove ORACLE_OCM From Database (Doc ID 859113.1)
- Oracle内存全面分析(4)
- Oracle内存全面分析(3)