2011-05-11 90 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