oracle 查找不重复的数据,oracle不用distinct查找不重复记录和删除重复记录

本文介绍两种Oracle数据库中去除重复记录的方法:一是通过SELECT语句结合GROUP BY查询唯一记录;二是利用ROWID特性删除重复项。适用于包含userid、username、password等字段的users表。

1.oracle中怎么不用distinct查找不重复记录,users表有字段userid,username,password?

答:

第一种方法:

select userid,username,password from users group by

userid,username,password;

使用group by 给表记录的所有字段组合分组显示,如果有相同的记录则就显示其中一条。

第二种方法:

select * from users u1 where u1.rowid =

(select min(u2.rowid) from users u2 where u1.userid =

u2.userid);

子查询找出某用户(不同记录对应不同用户,相同记录的则是同一用户)最低的ROWID(肯定只有一个),然后使外围的rowid等于子查询查出的这个代表某一用户的最低rowid,即可查到不重复的记录。

2.oracle怎么去除删除表中的重复记录,users表有字段userid,username,password?

答:

delete from users u1 where u1.rowid >

(select min(u2.rowid) from users u2 where u1.userid =

u2.userid)

1、子查询找出某员工最低的ROWID(肯定只有一个),其它大于这条记录ROWID的,全部删除。

2、Oracle中使用ROWID删除重复记录最快,因为Rowid对应这条记录在磁盘上的位置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值