sql语句删除表中重复行

SELECT ROW_NUMBER() OVER(ORDER BY 身份证号码) AS 行号,* INTO #temp1 from sj_就业局_就业困难人员灵活就业社保补贴_2014_2018
SELECT ROW_NUMBER() OVER(ORDER BY 身份证号码) AS 行号,* INTO #temp2 from sj_就业局_就业困难人员灵活就业社保补贴_2014_2018
SELECT ROW_NUMBER() OVER(ORDER BY 身份证号码) AS 行号,* INTO #temp3 from sj_就业局_就业困难人员灵活就业社保补贴_2014_2018
SELECT ROW_NUMBER() OVER(ORDER BY 身份证号码) AS 行号,* INTO #temp4 from sj_就业局_就业困难人员灵活就业社保补贴_2014_2018

DELETE FROM #temp1 WHERE 身份证号码 IN (SELECT 身份证号码 FROM #temp1 GROUP BY 身份证号码 HAVING COUNT(身份证号码) > 1)
AND 行号 NOT IN (SELECT MIN(行号) FROM #temp1 GROUP BY 身份证号码 HAVING COUNT(身份证号码) > 1);

DELETE FROM #temp2 WHERE 行号 > (SELECT MIN(t2.行号) FROM #temp2 AS t2 WHERE #temp2.身份证号码 = t2.身份证号码)

DELETE FROM #temp3 WHERE 行号 NOT IN (SELECT MIN(行号) FROM #temp3 GROUP BY 身份证号码)

DELETE FROM #temp4 WHERE 行号 IN (SELECT 行号 FROM #temp4 EXCEPT SELECT MIN(行号) FROM #temp4 GROUP BY 身份证号码);

 

posted @ 2019-05-13 12:56  罗浩  阅读(211)  评论(0)    收藏  举报