`

删除数据库中重复数据的几个方法

阅读更多

方法一

declare @max integer,@id integer
declare cur_rows cursor local for select 主字段,count(*) from 表名 group by 主字段 having count(*) > 1
open cur_rows
fetch cur_rows into @id,@max
while @@fetch_status=0
begin
select @max = @max -1
set rowcount @max
delete from 表名 where 主字段 = @id
fetch cur_rows into @id,@max
end
close cur_rows
set rowcount 0

方法二

有两个意义上的重复记录,一是完全重复的记录,也即所有字段均重复的记录,二是部分关键字段重复的记录,比如Name字段重复,而其他字段不一定重复或都重复可以忽略。

1、对于第一种重复,比较容易解决,使用  select distinct * from tableName  就可以得到无重复记录的结果集。
如果该表需要删除重复的记录(重复记录保留1条),可以按以下方法删除
select distinct * into #Tmp from tableName
drop table tableName
select * into tableName from #Tmp
drop table #Tmp

发生这种重复的原因是表设计不周产生的,增加唯一索引列即可解决。

2、这类重复问题通常要求保留重复记录中的第一条记录,操作方法如下:

假设有重复的字段为Name,Address,要求得到这两个字段唯一的结果集
select identity(int,1,1) as autoID, * into #Tmp from tableName
select min(autoID) as autoID into #Tmp2 from #Tmp group by Name,autoID
select * from #Tmp where autoID in(select autoID from #tmp2)
最后一个select即得到了Name,Address不重复的结果集(但多了一个autoID字段,实际写时可以写在select子句中省去此列)

分享到:
评论

相关推荐

    实例介绍删除数据库中重复数据的几个方法

    介绍删除数据库中重复数据的几个方法,删除数据库中的重复记录确实是一个比较头痛的问题,希望这些方法能够帮助你

    删除数据库中重复数据的几个方法.pdf

    删除数据库中重复数据的几个方法.docx

    SQL Server删除重复数据的几个方法

    SQL Server删除重复数据的几个方法SQL Server删除重复数据的几个方法

    基于深度学习的大规模数据库重复记录删除研究.pdf

    基于深度学习的大规模数据库重复记录删除方法首先对已有数据库重复记录删除方法进行分析,找到引起数据库重复记录删除不理想的因素,然后采用深度学习算法对数据库重复记录数据进行学习,建立数据库重复记录的分类器...

    ORACLE删除重复数据

    在本例中,我们使用了三种不同的方法来删除重复数据,这些方法都可以达到删除重复数据的目的,但是它们的执行时间和资源消耗不同。其中,方法三的执行时间最短,适合大数据量的情况。在实际操作中,需要根据实际情况...

    数据库中的快速语义重复检测技术

    在大型数据库中,有时我们发现自己有成千上万的重复项,因此需要进行自动重复数据删除。 为此,有必要使用一种相当可靠的方法来检测重复项,以找到尽可能多的重复项,并且其功能足以在合理的时间内运行。 本文提出...

    MySQL数据库中删除重复记录的方法总结[推荐]

    MySQL数据库中删除重复记录的方法有多种,下面将介绍几种常用的方法: 1. 使用DELETE语句删除重复记录 当没有创建表或创建索引权限的时候,可以使用DELETE语句删除重复记录。例如,要删除较旧的重复记录,可以...

    达梦数据库_SQL语言手册

    数据库快照删除语句 第章数据查询语句和全文检索语句 单表查询 简单查询 带条件查询 集函数 情况表达式 连接查询 子查询 标量子查询 表子查询 派生表子查询 定量比较 带 谓词的子查询 多列表子查询 ...

    数据库规范化习题及详解

    解:因为关系模式至少是 1NF 关系,即不包含重复组并且不存在嵌套结构,给出的数据集显然不可直接作为关系数据库中的关系,改造为 1NF 的关系如下所示。 习题 3:设有如下所示的关系 R。 (1) 它为第几范式? (2) ...

    数据库系统基础知识.pdf

    由于数据库本身的数据结构特征,使 得数据库独立于使用它的应用程序,对数 据的增加、删除、修改和检索则由相关的 软件进行管理和控制,从而实现了数据和 操作的分离。 将所有数据集中存放在数据库中,一方 面便于...

    sql数据库原理习题集(带答案)

    * 数据库保护的几个方面中,不包括控制数据冗余(问题12) 七、数据库设计规范化 * 关系规范化程度最高的是第三范式(问题14) * 一个只满足1NF的关系可能存在的四方面问题是数据冗余度大、修改麻烦、删除异常和...

    扬州大学数据库原理及应用试卷(1).doc

    在这几个阶段中,数据独立性最高的是数据库系统阶段。 知识点:数据独立性是指数据的存储和管理不受具体机器和 DBMS 的影响,具有高度的独立性。 2. 数据库三级视图:用户眼中的数据库称为外部视图。 知识点:...

    第一章-数据库系统概述.doc

    在这几个阶段中,数据独立性最高的是_______阶段。 A.数据库系统 B.文件系统 C.人工管理 D.数据项管理 5 关系模型中,一个码是_______。 A.可由多个任意属性组成 B.至多由一个属性组成 C.可由一个或多个其值能唯一...

    mysql优化小技巧之去除重复项实现方法分析【百万级数据】

    首先按照常规首段,使用having函数检查重复项,完事一个一个的删除。不要问我having检测重复项的sql咋写,你懂得哈。。。这个在只有几条重复的时候还可以。要是几千上万条不同数据重复,那咋办。。。 完事呢,咱就...

    Oracle数据库学习指南

    30.删除表内重复记录的方法 31.数据库安全性策略 32.数据库的查询优化技术. 33.提高C-S系统性能的一些方法 34.提高ORACLE数据库系统import性能 35.外部联接的用法 36.性能调试的一般问题 37.优化 38...

    SQL Server中删除重复数据的几个方法

    数据库的使用过程中由于程序方面的问题有时候会碰到重复数据,重复数据导致了数据库部分设置不能正确设置

    Oracle数据库、SQL

    1.12一台机器可跑几个数据库,主要受内存大小影响 2 1.13源表和结果集 2 1.14几个简单命令 2 1.15 tarena给jsd1304授权 2 1.16课程中使用的5个表 3 二、 select from语句 5 2.1 select语句功能 5 2.2 select语句基本...

Global site tag (gtag.js) - Google Analytics