oracle单表删除重复数据

来源:互联网 发布:淘宝美工常用尺寸表 编辑:程序博客网 时间:2024/05/09 04:15

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);



高手有高招请指教一下更好的方法,我这是抛砖引玉。

原创粉丝点击