【SQL】通过rowid查找及删除重复记录
2017-04-30 21:40
281 查看
新建T表如下:
SQL> select * from t;
X Y
---------- --
1 a
1 a
1 a
2 b
2 b
3 a
3 a
1.查询表中重复的记录(在子查询中运用了自连接查出相同记录的max(rowid),通过不等值运算查出去,除了第一条重复记录后的重复记录)
SQL> select x,y from t
2 where rowid!=(select max(rowid) from t a
3 where t.x=a.x
4 and
5 t.y=a.y);
X Y
---------- --
1 a
1 a
2 b
3 a
2.删除重复记录
SQL> delete from t
2 where rowid!=(select max(rowid) from t a
3 where t.x=a.x
4 and
5 t.y=a.y);
SQL> select * from t;
X Y
---------- --
1 a
1 a
1 a
2 b
2 b
3 a
3 a
1.查询表中重复的记录(在子查询中运用了自连接查出相同记录的max(rowid),通过不等值运算查出去,除了第一条重复记录后的重复记录)
SQL> select x,y from t
2 where rowid!=(select max(rowid) from t a
3 where t.x=a.x
4 and
5 t.y=a.y);
X Y
---------- --
1 a
1 a
2 b
3 a
2.删除重复记录
SQL> delete from t
2 where rowid!=(select max(rowid) from t a
3 where t.x=a.x
4 and
5 t.y=a.y);
相关文章推荐
- SQL重复记录处理(查找,过滤,删除)
- SQL重复记录处理(查找,过滤,删除)
- SQL删除、查找重复数据记录等操作
- 在Oracle中利用Rowid查找和删除表中的重复记录
- [导入]通过SQL语句删除重复记录
- 在Oracle中如何利用Rowid查找和删除表中的重复记录
- SQL重复记录处理(查找,过滤,删除)
- SQL重复记录处理(查找,过滤,删除)
- SQL查找和删除重复记录
- 在Oracle中如何利用Rowid查找和删除表中的重复记录
- Oracle SQL中查找和删除重复记录方法
- MSSQL:数据库中查找重复记录和删除重复记录的sql
- SQL重复记录处理(查找,过滤,删除)
- SQL重复记录处理(查找,过滤,删除)
- SQL重复记录处理(查找,过滤,删除)
- Oracle中用Rowid查找和删除重复记录
- Oracle中用Rowid查找和删除重复记录
- SQL重复记录处理(查找,过滤,删除)
- SQL重复记录处理(查找,过滤,删除)
- SQL重复记录处理(查找,过滤,删除)