SQL server 多字段重复数据删除 保留一条记录

1,目的:

删除部分字段有重复的数据,保留其中一条记录数据

2,效果图:

处理前:
在这里插入图片描述

处理后:
在这里插入图片描述

3,SQL

delete FROM Atable WHERE EXISTS (
	SELECT id FROM( SELECT name, code FROM Atable GROUP BY name, code HAVING COUNT ( * ) > 1 ) tableabc 
	WHERE Atable.name= tableabc.name AND Atable.code= tableabc.code ) 
AND id NOT IN (
	    SELECT MIN(id) FROM Atable GROUP BY name,code HAVINGCOUNT ( * ) > 1)

解释抽取Atable表的重复数据,作为一个临时表tableabc,将tableabc与Atable联查,抽取出重复的部分,只保留重复数据中最小id的一条记录数据。

猜你喜欢

转载自blog.csdn.net/qq_36636312/article/details/110137576