删除重复数据

朕赐你肥皂 2015-01-15 11:06:46
我现在有个表 表里面有ID No,Pass

然后根据No,Pass相同的数据,保留Max(ID)数据,删除其他,各位大神,如何做?
...全文
129 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
朕赐你肥皂 2015-01-15
  • 打赏
  • 举报
回复
晕。。。。。。。。。。。。崩溃了。。。。 DELETE TB WHERE ID NOT IN(SELECT MAX(ID)FROM TB GROUP BY NO,PASS) 这个貌似阔以。。。不管了,先给你结贴!
还在加载中灬 2015-01-15
  • 打赏
  • 举报
回复
如果会重复,可以这样
DELETE T1
FROM TB T1
	JOIN(SELECT MAX(ID)ID,NO,PASS FROM TB GROUP BY NO,PASS)T2
		ON T1.NO=T2.NO AND T1.PASS=T2.PASS AND T1.ID<>T2.ID
SELECT * FROM TB
还在加载中灬 2015-01-15
  • 打赏
  • 举报
回复
如果ID不会重复,可以用以下方式
DELETE TB
WHERE ID NOT IN(SELECT MAX(ID)FROM TB GROUP BY NO,PASS)
朕赐你肥皂 2015-01-15
  • 打赏
  • 举报
回复
select ID from Table WHERE ID not in( select Max(ID) from Table group by No, Pass having count(*) > 1) and CAST(No AS VARCHAR)+CAST(Pass AS VARCHAR) in (select CAST(No AS VARCHAR)+CAST(Pass AS VARCHAR) from Table group by No, Pass having count(*) > 1) 这样貌似是可以的,期待高手解决!
朕赐你肥皂 2015-01-15
  • 打赏
  • 举报
回复
2条数据貌似可以,超过2条就不行~
朕赐你肥皂 2015-01-15
  • 打赏
  • 举报
回复
我是这么做的,不知道行不行 delete Min(ID),CAST(No AS VARCHAR)+CAST(Pass AS VARCHAR) from Table group by No, Pass having count(*) > 1

22,300

社区成员

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

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