表结构如下:
id varchar2(10), 
name varchar2(20), 
value number(10,2)
由于历史原因没有建立主键,造成数据库中存在重复记录,需要删除重复记录

解决方案 »

  1.   

    如果数据量不是很大的话
    delete from tt a where exists (select 1 from tt where id=a.id and name=a.na
    me and value=a.value rowid>a.rowid);上面where条件根据你对重复的定义相应修改,重复数据会保留一行,其余的删除
      

  2.   

    一般都这样:在所看到的记录都相同的情况下,每条记录的rowid都不一样的。这样先对相同的记录进行分组筛选出,然后删除就可以了。
    对于你的例子:
      delete from tt where id in(select id from (select rowid,id from t) group id having count(*)>1)
      

  3.   

    谢谢了,我找到一篇文章就是讲删除重复行的
    http://temp.5tzone.com/html/computer/database/2006-1/17/200601172303338035302.htm