2015-07-10 58 views
-3

我需要在SQL Server的表中查找具有重複訂單號的行。在SQL Server中查找包含重複條目的行

例如SELECT *顯示:

No 
----- 
5001 
5002 
5003 
5003 
5003 
5004 
5005 
5006 
5006 

我想

No 
------ 
5003 
5003 
5003 
5006 
5006 

是否可以編寫一個查詢來做到這一點?

+0

你有沒有在你的研究中發現任何關於重複的東西? –

+0

[Select select statement to find duplicates on certain fields](http://stackoverflow.com/questions/4434118/select-statement-to-find-duplicates-on-certain-fields) – Kritner

+0

@TimSchmelter爲什麼你的答案消失? – Jack

回答

0

雖然這個問題被回答了SO萬次,使用GROUP BY + HAVING

SELECT No 
FROM dbo.tablename 
Group By No 
Having Count(*) > 1 
0
SELECT S.No 
    FROM [dbo].[Shows] S 
    INNER JOIN (
     SELECT [No] 
     FROM [dbo].[Shows] 
     GROUP BY [No] 
     HAVING COUNT(*) > 1 
) J 
    ON S.No = J.No 
+0

但我無法想象爲什麼你想要這個數據子集:) –

0

您可以使用COUNT() OVER()得到每No的行數,並在外部查詢,過濾掉所有非重複行:

SELECT [No] 
FROM (
    SELECT [No], COUNT(*) OVER (PARTITION BY [No]) AS cnt 
    FROM mytable) t 
WHERE cnt > 1 

Demo here