转自:http://aszx0413.com/blog/?p=161
在oracle中,有些数据完全一样,要清除掉重复的,只保留一条不重复的数据。
- DELETE FROM tb WHERE ROWID NOT IN (
- SELECT MAX(ROWID) FROM tb GROUP BY col1,col2...
- )
其中col1,col2…为重复数据的字段根据。
另一种方法
- DELETE FROM tb t1
- WHERE ROWID < (SELECT MAX(ROWID) FROM tb t2 WHERE t1.col=t2.colAND ...)
PS:效率如何,有待进一步研究。