数据库 两条 相同 记录 怎么 删除

数据库 两条 相同 记录 怎么 删除,第1张

oracle数据库下

如果记录数不多可以使用下面的查询

delete from TAB_NAME a where arowid <> (select max(rowid) from TAB_NAME b where bCOL1 = aCOL1);

括号中的where后,你可以加入所有字段相等

bCOL2 = aCOL2 and bCOL3 = aCOL3 ……

sqlserver下

select distinct from tableName

就可以得到无重复记录的结果集。

如果该表需要删除重复的记录(重复记录保留1条),可以按以下方法删除

select distinct into #Tmp from tableName

drop table tableName

select into tableName from #Tmp

drop table #Tmp

方法很多,说一个最简单的。

先建一个表,结构和原来的表一样,但是在你要去重的列建立一个主键,并设置“忽略重复键”,把原表中的所有数据插入这个新表,

此时新表中的数据就已经是非重复的了。

把原表数据都删掉,把新表中的数据都导回来就ok了

查询及删除重复记录的SQL语句

1、查找表中多余的重复记录,重复记录是根据单个字段(Id)来判断 ;

select from 表 where Id in (select Id from 表 group byId having count(Id) > 1)

2、删除表中多余的重复记录,重复记录是根据单个字段(Id)来判断,只留有rowid最小的记录;

DELETE from 表 WHERE (id) IN ( SELECT id FROM 表 GROUP BY id HAVING COUNT(id) > 1) AND ROWID NOT IN (SELECT MIN(ROWID) FROM 表 GROUP BY id HAVING COUNT() > 1);

3、查找表中多余的重复记录(多个字段);

select from 表 a where (aId,aseq) in(select Id,seq from 表 group by Id,seq having count() > 1)

4、删除表中多余的重复记录(多个字段),只留有rowid最小的记录;

delete from 表 a where (aId,aseq) in (select Id,seq from 表 group by Id,seq having count() > 1) and rowid not in (select min(rowid) from 表 group by Id,seq having count()>1)

5、查找表中多余的重复记录(多个字段),不包含rowid最小的记录;

select from 表 a where (aId,aseq) in (select Id,seq from 表 group by Id,seq having count() > 1) and rowid not in (select min(rowid) from 表 group by Id,seq having count()>1)

以上就是关于数据库 两条 相同 记录 怎么 删除全部的内容,包括:数据库 两条 相同 记录 怎么 删除、数据库中怎么删除重复的记录,只保留唯一的记录、如何删除oracle数据库中的重复记录等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9401384.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存