如何讓T-SQL代碼找到重複項?

MS Access有一個按鈕,用於生成用於查找重複行的sql代碼。我不知道SQL Server 2005/2008 Managment Studio是否有此功能。

  1. 如果有,請指出哪裡
  2. 如果還沒有,請告訴我如何創建一個T-SQL幫助器來創建這樣的代碼。

好吧,如果你的表中有完整的行作為重複行,你至少沒有為該表設置主鍵,否則至少主鍵值會有所不同。

但是,以下是如何構建SQL以在一組列上獲取重複項:

SELECT col1, col2, col3, col4
FROM table
GROUP BY col1, col2, col3, col4
HAVING COUNT(*) > 1

這將找到對於列col1-col4具有相同值組合的行,不止一次。

例如,在下表中,第2 + 3行將是重複的:

PK col1 col2 col3 col4 col5
1 1 2 3 4 6
2 1 3 4 7 7
3 1 3 4 7 10
4 2 3 1 4 5

這兩行在列col1-col4中共享公共值,因此,該SQL被認為是重複的。展開列列表以包含要為其分析的所有列。


分享到:


相關文章: