【Oracle笔记】数据表中删除重复记录的SQL

2022-05-12 08:34:27 浏览数 (1)

  ROWID是ORACLE中的一个重要的概念。用于定位数据库中一条记录的一个相对唯一地址值。通常情况下,该值在该行数据插入到数据库表时即被确定且唯一。   ROWID它是一个伪列,它并不实际存在于表中。它是ORACLE在读取表中数据行时,根据每一行数据的物理地址信息编码而成的一个伪列。所以根据一行数据的ROWID能找到一行数据的物理地址信息。从而快速地定位到数据行。数据库的大多数操作都是通过ROWID来完成的,而且使用ROWID来进行单记录定位速度是最快的。

代码语言:javascript复制
DELETE FROM test_data
	  WHERE idcard IN (SELECT idcard 
				         FROM test_data
			         GROUP BY idcard)
			 AND ROWID NOT IN (SELECT MIN(ROWID) 
			                     FROM test_data 
			                 GROUP BY idcard);

0 人点赞