据据oracle带的rowid属性,进行判断,是否存在重复,语句如下:
查数据:
select * from table1 a where rowid
!=(select max(rowid)
from table1 b where a.name1=b.name1 and
a.name2=b.name2......)
删数据:
delete from table1 a where rowid
!=(select max(rowid)
from table1 b where a.name1=b.name1 and
a.name2=b.name2......)
2.group by方法
查数据:
select count(num), max(name) from student --列出重复的记录数,并列出他的name属性
group by num
having count(num) >1 --按num分组后找出表中num列重复,即出现次数大于一次
删数据:
delete from student
group by num
having count(num) >1
这样的话就把所有重复的都删除了。
3.用distinct方法 -对于小的表比较有用
create table table_new as select distinct *
from table1 minux
truncate table table1
insert into table1 select * from table_new
1、首先在计算机中,打开Oracle的连接程序,查看表中重复的数据。
2、然后使用distinct,去除函数查询出去掉重复后的数据。
3、接着创建新表,把去掉重复的数据插入到新表中。
4、然后使用truncate,清空原表中的数据。
5、最后再向原表中插入新表中重复的数据,即可达到去重复数据的效果。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)