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对应这条记录在磁盘上的位置
本文介绍两种Oracle数据库中去除重复记录的方法:一是通过SELECT语句结合GROUP BY查询唯一记录;二是利用ROWID特性删除重复项。适用于包含userid、username、password等字段的users表。
2755

被折叠的 条评论
为什么被折叠?



