2011-05-11 87 views
0

我有列的Employee_Master表作为消除重复条目

Emp_id, Emp_Name, Region_Code 

由于数据加载失败有在主表中重复的条目。

我发现重复的条目是Region_Code=5,10 & 13

我该如何找出重复的Emp_id?

另外我怎么写一个查询来查找给定表中的重复项?

回答

2

以下解决方案适用的SQL Server 2005及更高版本上:

-- Find Duplicate Rows 
SELECT 
    Emp_id, 
    Emp_Name, 
    MAX(Region_Code) as Region_Code 
FROM 
    Employee_Master 
GROUP BY 
    Emp_id, 
    Emp_Name 
HAVING 
    COUNT(*) > 1 



-- Delete Duplicate Rows 
DELETE FROM 
    Employee_Master 
WHERE 
    Region_Code IN 
    ( 
     SELECT 
      MAX(Region_Code) 
     FROM 
      Employee_Master 
     GROUP BY 
      Emp_id, 
      Emp_Name 
     HAVING 
      COUNT(*) > 1 
) 
+0

这只会工作,如果没有超过2个重复的行。 – Dmitry 2011-05-11 09:22:33

+0

@DIMITRY:那么如果我有两个以上的重复行呢?因为我在这里有超过7个重复的行。 – sobsinha 2011-05-11 09:30:24

+0

@sobsinha,@Dmitry:我相信它会起作用。尝试一下,然后通知我,如果没有。 – 2011-05-11 09:33:17