Q
删除重复的行
3
A
回答
4
如果您使用的是SQL Server 2005或更高版本:
With Dups As
(
Select Id, Name
, Row_Number() Over (Partition By Name Order By Id) As Num
From Table1
)
Delete Table1
Where Id In (
Select Id
From Dups
Where Num > 1
)
如果使用SQL Server 2000和之前
Delete Table1
Where Exists (
Select 1
From Table1 As T1
Where T1.Name = Table1.Name
Having Min(T1.Id) <> Table1.Id
)
0
只要您可以使用光标 查询可能是这样做(3030)
申报CR光标选择ID,名称来自idnametbl为了通过ID
用于更新
开放CR未来从CR
提取到@ ID,@名
而@@ FETCH_STATUS = 0
开始
从idnametbl删除其中id> @id和名称= @名称
下一个从CR读取到ID @,@名
末
接近CR
DEALLOCATE CR
2
的副本可以用一个简单的自我联接查询被删除。下面的脚本会为你解决问题。
delete t2
from Table1 t1
join Table1 t2
on t1.Name = t2.Name
where t1.Id < t2.Id
此逻辑可用于需要删除重复项的情况。我们应尽可能避免使用“光标”,因为它会阻止表格。
相关问题
- 1. 删除重复行
- 2. 删除重复行
- 3. SQL删除重复的行
- 4. 删除重复的行mysql
- 5. 删除重复的行?
- 6. 删除重复行(不要删除所有重复)
- 7. R删除重复行
- 8. VBA Excel删除重复行
- 9. 删除重复行#2
- 10. JackRabbit - 删除重复行
- 11. 删除重复
- 12. 删除重复
- 13. 删除“重复”
- 14. 删除重复
- 15. 删除重复
- 16. 删除重复
- 17. 删除重复
- 18. 删除重复的行(包括重复的行)
- 19. 删除重复的行中的Oracle
- 20. MySQL的删除重复的连续行
- 21. 如何删除一些重复的行
- 22. 删除行内的重复项
- 23. 删除表中的重复行
- 24. 按值删除重复的行
- 25. 删除重复的行具有空
- 26. SQL:删除重复的行? (PHP)
- 27. 删除重复的行,但保留
- 28. 删除表中的重复行
- 29. 与扭曲删除重复行的GnuWin32
- 30. SQL - 从表中删除重复的行
创建一个具有唯一行的新表删除旧的名称,然后用旧名称重命名新的名称,也许你应该尽量避免添加重复的条目 – Ibu 2011-05-29 04:14:24
在完成清理之后,*添加一个UNIQUE约束*名字,所以你不必再做这个工作。 – 2011-05-29 04:21:19
[删除重复行(不要删除所有重复项)](http://stackoverflow.com/questions/3777633/delete-duplicate-rows-dont-delete-all-duplicate) – jmort253 2013-11-07 02:16:16