oracle删除重复记录的方法

2014-11-24 07:55:44 ? 作者: ? 浏览: 2

删除重复记录方法(实验说明):

1.表stu中共16条数据,无一重复
select rowid,xh,xm,sex,birthday,classid,degree from stu
order by xh;
\
2.将表stu中的数据复制成两份,以便实验,复制后共32条数据,两两重复,如下图。
insert into stu select * from stu;

\

3.一样的数据,rowid是唯一的,所以通过rowid来删除重复数据
把相同的数据分组,只保留其中ROWID最小的,sql如下:
delete from stu where ROWID not in(
--每个相同中的最小ROWID

select min(ROWID) from stu group by xh);
执行sql后,查询结果为原来的16条数据,如下图:

\

4.若数据重复超过两条,同样适用。

作者“To_Be_Monster_Of_IT

-->

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: