- 积分
- 40165
- 好友
- 记录
- 主题
- 帖子
- 听众
- 收听
|
Sql Server数据库关于重复记录的处理方案(删除,查询)
在数据库在对于重复记录的处理从来都没有少过,也是一个不避免的过程
我相信大部分人都有这个的苦恼
查询一个表中重复的记录,删除一个表中重复的记录,删除一个表中重复数大于N的记录。
等等吧。
下面我说几种大家提提建议
1.删除数据库表中重复的记录
[code=sql]delete from tablename where code not in (select max(code) from tablename group by id)[/code]
tablename 表名
code 表中的唯键,这个必须有,如果没有大家可以直接添加一列自增列
id 这就是重复的字段,如果是多个就写多个,直接写在group by后面就行了。
2.查询不重复的记录
[code=csharp] SELECT DISTINCT * from tablename [/code]
这种就简单多了
还可以这样写
[code=sql]select * from tablename where code not in (select max(code) from tablename group by id)[/code]
3.删除表中重复数大于N的记录
[code=csharp]delete from dbo.DomainInFo_FIp_domain_old where D_IP in(select D_IP FROM(select max(D_IP)AS D_IP ,count(D_IP) AS con FROM DomainInFo_FIp_domain_old group by D_IP)as tWHERE con>500000)[/code]
4.将不重复的记录写入相同结构的新表中
[code=sql] insert t1 select * from tablename where code not in (select max(code) from tablename group by id)[/code]
更新关于Sql语句方法的大家请看我的总结
http://www.sufeinet.com/thread-401-1-1.html
|
|