关于重复数据删除

擒兽 2006-11-30 09:54:18
表中[ID]为 主键 int标识步长1

方法1
Delete 表 Where ID<(Select Max(ID) From 表 AS Temp Where Temp.字段=表.字段)

方法2
Delete 表 From 表 AS Temp Where Exists(Select * From 表 Where ID>Temp.ID And PartNo=Temp.字段)

上面两种方法有啥区别?哪个性能高?还有没有其它更好的方法,谢谢!
...全文
181 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Juchiyufei 2006-12-04
  • 打赏
  • 举报
回复
继续关注
擒兽 2006-11-30
  • 打赏
  • 举报
回复
发现马甲
shuqinpeng 2006-11-30
  • 打赏
  • 举报
回复
关注
zicxc 2006-11-30
  • 打赏
  • 举报
回复
性能上应该差不多,试下下面语句

Delete Temp
From 表 AS Temp left join 表 AS Temp1
on temp1.PartNo=Temp.PartNo and temp1.id>Temp.id
where temp1.id is not null
zicxc 2006-11-30
  • 打赏
  • 举报
回复
第二个性能高
差别不大
字段有索引性能好些

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧