mssql 快速检查并删除重复记录(mssql 检查重复记录)

做数据管理工作是一项艰苦而又十分重要的事情,在处理一定数据时,会有重复数据出现。这时就需要快速检查并删除重复记录,特别是在mssql中,可以使用特定的语句进行快速检查并删除重复记录。

在mssql中,可以使用rownum这个参数,在开头进行定义,形式如下:

SELECT ROW_NUMBER() OVER (ORDER BY 列名)AS rownum,* FROM 表名;

使用该语句后,mssql会将表内每一条记录加入rownum字段,右边的数字代表有多少条满足的条件。

在检查重复记录的时候,只需要添加一个简单的分组聚合条件,代码如下:

SELECT * FROM 条件 WHERE colum1 IN (SELECT colum1 FROM 条件 GROUP BY colum1 HAVING COUNT(*) > 1)

使用这句代码,将可以查出来重复记录。

删除重复记录就简单多了,只需要把上面的查询记录做个循环,把重复记录的id保存下来,然后在最后一起删掉即可。代码如下:

–循环

DECLARE @id int;

WHILE EXISTS(SELECT * FROM 条件 WHERE colum1 IN (SELECT colum1 FROM 条件 GROUP BY colum1 HAVING COUNT(*) > 1))

BEGIN

SELECT top 1 @id=id FROM 条件 WHERE colum1 IN (SELECT colum1 FROM 条件 GROUP BY colum1 HAVING COUNT(*) > 1)

DELETE FROM 表 WHERE id=@id

END

–批量

DELETE FROM 表 WHERE id IN (SELECT TOP @n id FROM 条件 WHERE colum1 IN (SELECT colum1 FROM 条件 GROUP BY colum1 HAVING COUNT(*) > 1) ORDER BY id);

上述方法可以快速检查并删除mssql中重复记录,在处理数据任务时,帮助会异常明显。


数据运维技术 » mssql 快速检查并删除重复记录(mssql 检查重复记录)