Oracle数据库除去表重复记录

Oracle数据库去除表重复记录

转自:http://aszx0413.com/blog/?p=161

 

在oracle中,有些数据完全一样,要清除掉重复的,只保留一条不重复的数据。

  1. DELETE FROM tb WHERE ROWID NOT IN (
  2.     SELECT MAX(ROWID) FROM tb GROUP BY col1,col2...
  3. )

其中col1,col2…为重复数据的字段根据。

另一种方法

  1. DELETE FROM tb t1
  2. WHERE ROWID < (SELECT MAX(ROWID) FROM tb t2 WHERE t1.col=t2.colAND ...)

PS:效率如何,有待进一步研究。