删除表中重复记录的方法

方法一:
delete from employee where rowid not in (select max(t1.rowid) from employee t1 group by t1.emp_id,t1.emp_name,t1.salary);

解析:任何记录的ROWID只有一个值,在数据库里面是唯一的,select max(t1.rowid) from employee t1 group by t1.emp_id,t1.emp_name,t1.salary
这个是查到最大值(那两条相同的记录中rowid最大的)。
delete from employee where rowid not in
这段意思是说删除那些不是最大rowid的记录。
方法二:
delete from employee e2 where rowid not in (select max(e1.rowid) from employee e1 where e1.emp_id=e2.emp_id and e1.emp_name=e2.emp_name and e1.salary=e2.salary)

方法三:
建立一个表, 用DISTINCT
posted @ 2006-11-09 21:10  dkcndk  阅读(243)  评论(0编辑  收藏  举报