首页 > 解决方案 > 我在 Oracle 数据库中有 3 个重复的行。只想删除第二条重复记录。我该怎么办?

问题描述

例子:

sno Empid Ename Sal
1   100   xxx   1000
2   200   yyy   2000
3   200   yyy   2000
4   200   yyy   2000

Empid, Ename,sal是 EMP 表中的列。Sno不是专栏,仅供了解

如何删除第三条记录?

标签: sqloracle

解决方案


这应该有效:

 DELETE FROM emp 
 WHERE  ROWID = (SELECT Max(ROWID) 
                 FROM (SELECT ROWID, empid 
                       FROM emp 
                       WHERE  empid = 200 
                       ORDER  BY ROWID) 
                 WHERE  ROWNUM <= 2);

推荐阅读