SQL中删除重复记录只保留一条的语句,最好有详细解释。

如题所述

1 --oracle删除重复记录,可以利用oracle独有的rowid 来操作 如:
delete from test1 where rowid not in (select max(rowid) from test1);
解释: rowid 是一个虚列,不是真正的表中的列,利用rowid的特性(唯一),就可以删除重复记
录了

2 --mysql删除重复记录
思路:利用distinct关键字获取唯一记录,然后新建一个表把记录复制过来。
1、create table test2 as select distinct * from test1;
2、drop table test1;
3、alter table test2 rename to test1;
解释:建一个新表复制唯一记录,删掉原表,把新表改名成原表的表名。完成。
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-06-26
这个无法做到一步到位
你可以先查出唯一信息放入临时表
select distinct *
into #a
from table1
再删除原表内容
delete from table1
将信息插回原表
insert into table1
select * from #a本回答被提问者和网友采纳
第2个回答  2012-06-26
用distinct关键字,返回唯一不同的记录。
语法:SELECT DISTINCT 列名 FROM 表名
第3个回答  2012-06-26
我也 求解....
相似回答