使用以下 SQL 语句查询表中的重复记录

  1. 创建表 emp1
CREATE TABLE emp1 AS SELECT * FROM emp;
  1. 插入重复数据
INSERT INTO emp1 SELECT * FROM emp1;
  1. 查询重复记录
SELECT a.rowid, a.* FROM emp1 a WHERE a.rowid > (SELECT MIN(b.rowid) FROM emp1 b WHERE a.empno = b.empno AND a.ename = b.ename AND a.job = b.job AND NVL(a.mgr, 1) = NVL(b.mgr, 1) AND a.sal = b.sal AND NVL(a.comm, 1) = NVL(b.comm, 1) AND a.deptno = a.deptno);

在查询时,使用 NVL 函数将空值转换为指定值,确保在比对时不会因为空值而错过重复记录。