我有一個表,其中有48個記錄,稱爲Table1。其中只有24個應該在那裏。出於某種原因,我將重複的記錄插入到它中。如何刪除該表中的重複記錄。從表中刪除重複記錄
5
A
回答
5
這裏的東西,如果SQL Server版本是2005或更高版本,你可以嘗試。
WITH cte AS
(
SELECT {list-of-columns-in-table},
row_number() over (PARTITION BY {list-of-key-columns} ORDER BY {rule-to-determine-row-to-keep}) as sequence
FROM myTable
)
DELETE FROM cte
WHERE sequence > 1
這使用公用表表達式(CTE),並增加了一個序列列。 {list-of-table-in-table}就像它說的那樣。並非所有列都需要,但我不會在這裏解釋。
{list-of-key-columns]是用來定義什麼是重複的列。
{rule-to-determine-row-to-keep}是一個序列,因此第一行是要保留的行。例如,如果您想保留最早的行,則可以使用日期列來表示序列。
下面是帶有實列的查詢示例。
WITH cte AS
(
SELECT ID, CourseName, DateAdded,
row_number() over (PARTITION BY CourseName ORDER BY DateAdded) as sequence
FROM Courses
)
DELETE FROM cte
WHERE sequence > 1
本示例根據CoursName值刪除重複行,並保留基於DateAdded值的最早值。
0
http://support.microsoft.com/kb/139444
這一部分是關鍵。 主要點你應該帶走。 )
本文討論如何定位 和從 表中刪除重複的主鍵。但是,您應該仔細檢查允許 重複發生的過程,以便 防止重複發生。
通過按邏輯鍵對數據進行分組來識別您的記錄,因爲您顯然沒有定義它們,並且在最後應用HAVING COUNT(*)> 1語句。文章深入討論了這一點。
0
這是一個簡單的方法
Select * Into #TempTable FROM YourTable
Truncate Table YourTable
Insert into YourTable Select Distinct * from #TempTable
Drop Table #TempTable
相關問題
- 1. 從表中刪除重複記錄
- 2. 如何從sql表中刪除除重複記錄之外的重複記錄?
- 3. 從視圖中刪除重複記錄
- 4. 刪除sql表中的重複記錄
- 5. 刪除列表中的重複記錄
- 6. 刪除表中的重複記錄
- 7. 刪除「重複」記錄
- 8. XSL刪除重複記錄
- 9. AngularJS - 刪除重複記錄
- 10. Mysql - 刪除重複記錄
- 11. oracle |刪除重複記錄
- 12. 刪除重複記錄
- 13. 刪除重複記錄
- 14. 刪除重複記錄?
- 15. ActiveRecord:刪除重複記錄
- 16. 如何從SQL Server中的表中刪除重複的記錄?
- 17. 需要從30列的表中刪除重複的記錄
- 18. 如何從MySQL表中刪除重複記錄?
- 19. 如何從表中刪除重複的記錄?
- 20. 如何使用C#從Excel表中刪除重複的記錄
- 21. 如何從Hive表中刪除重複的記錄?
- 22. 刪除從SQL表中重複記錄沒有主鍵
- 23. 在SAS中刪除重複記錄
- 24. 刪除oracle中的重複記錄
- 25. 刪除組中的重複記錄 - SQL
- 26. 刪除SQL Server中的重複記錄?
- 27. Python重複數據刪除記錄 - 重複數據刪除
- 28. 如何從mysql表中刪除重複的記錄,但有1條記錄
- 29. 如何刪除重複(重複)記錄,從表中沒有編號的行
- 30. 合併表(9M記錄)並刪除重複記錄
如果只有48個,請加載SSMS並手動刪除它們。 – 2010-12-16 23:00:39