最近发布的脚本,有那种防止重复插入数据(包括存在时更新,不存在是插入的处理,判断的方向可能与下面的示例相反) 使用类似下面的 SQL declare @id int, @value int if not exists( select * from tb where id = @id ) insert tb values( @id, @value ); --else -- update tb set value = @value where id = @id; 或者是使用这种单句的 declar…
去除表中重复行数据,可能大家立马就想到的是用DISINTCT关键字,但DISINTCT只能是去除表中所有列都相同的行,若碰到需要去除表中多个字段重复的行(即:部份相同,部份不相同),那么该如何做呢?我通过多年数据库编写经验,整理了如下方法,供大家参考和使用. 方法1:适用于返回较少字段 select F1,F2,F3,MAX(F4) FROM TABLENAME GROUP BY F1,F2,F3 方法2:适用于返回行所有字段,需指定不相同的字段 select * FROM TABLENAME…
前天因为工作需要,开始着手对数据库中两千多万的数据中其中一个字段重复的数据进行去重. 原本使用一些测试的数据测试后,前天写的那个方法是可行的,但是当面对这个两千万的真实数据时,我却发现这方法有些不顶用了,最终只好又经过若干次的尝试,总算成功去重. 最终总结一下整个过程: 1.这个方法就是上一篇所讲的,利用mongodb的游标dbcursor和while循环的方式. var res=db.test.find(); while(res.hasNext()){ var res1=db.test.fin…