删除重复数据

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

然后根据No,Pass相同的数据,保留Max(ID)数据,删除其他,各位大神,如何做?
...全文
61 点赞 收藏 6
写回复
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
回复 点赞
发动态
发帖子
疑难问题
创建于2007-09-28

9309

社区成员

12.1w+

社区内容

MS-SQL Server 疑难问题
社区公告
暂无公告