时间:2021-07-01 10:21:17 帮助过:2人阅读
使用rownum对oracle分页
SELECT a.rowid,a.* FROM student a WHERE a.rowid NOT IN (SELECT MAX(b.rowid) FROM student b WHERE a.sname = b.sname AND a.sage = b.sage);
上面这条sql语句因为 源和目标 交叉着一起查询,理解会有困难.
中文释意(从内层select开始理解):
1.从studnetA表中开始查找和studentB表中同样名字和同样年纪的学生.
2.把这些同样名字的学生的最大rowid找出来.
3.从studentA表中查找不在最大rowid范围内的那些学生.
真正使用的去重语句为:
DELETE FROM student a WHERE a.rowid NOT IN (SELECT MAX(b.rowid) FROM student b WHERE a.sname = b.sname AND a.sage = b.sage);
rowid的更详细参考资料:
高效删除Oracle数据库中重复数据的方法
oracle中rownum和rowid的区别
oracle中rownum和rowid的区别
标签: