`
haimav
  • 浏览: 57171 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

如何 在SQL中删除重复的数据行

    博客分类:
  • asp
SQL 
阅读更多

有两个意义上的重复记录,一是完全重复的记录,也即所有字段均重复的记录,

二是部分关键字段重复的记录,比如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子句中省去此列)

3、部分关键字段重复,且记录中有ID.

第一种方法可一次删除所有重复的..(只保留重复中ID最小的记录)。

delete from table where id not in ( select min(id) from table group by name)

第二种方法每次只删除重复中ID最大的一条记录。

delete from table where id in ( select max(id) from table group by name having count(*)>1)

4、SQL程序删除

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

 

 

 

海马实验成功:

delete from ft_art where art_id not in (select min(art_id) from ft_art group by art_poster

having count(*)>0)

 

删除ft_art 中重复的项  保留重复项中art_id最小的一项  控制count(*)>n  则可以实现剩余项的个数

分享到:
评论

相关推荐

    删除表中重复数据sql语句

    ### 删除表中重复数据SQL语句详解 #### 一、基础知识概述 在数据库管理中,重复数据是一个...在实际操作中,建议先在测试环境中尝试这些SQL语句,确保它们能够正确地识别和处理重复数据,避免意外删除重要的数据。

    sqlServer删除重复数据

    SQL Server 删除重复数据是数据库管理中的一项重要任务。重复数据可能是完全重复的记录,也可能是部分关键字段重复的记录。删除重复数据可以使用多种方法,包括使用 SELECT DISTINCT 语句、使用自动生成的标识符、...

    SQL删除重复行

    在SQL中,处理重复数据是一项常见的任务,尤其是在数据清洗和数据整理的过程中。本文将详细讨论如何使用SQL语句来删除重复行,分为基于单个字段和多个字段的情况,并提供两种不同的方法。 首先,我们来看基于单个...

    OracleSQL实例-删除重复数据行留最新日期实例.pdf

    在Oracle SQL中,删除重复数据并保留最新日期的实例是一个常见的数据清理任务,尤其是在具有历史记录或事务数据的数据库中。这个实例展示了如何通过SQL查询有效地处理这种情况。在这个例子中,我们有一个名为`abc`的...

    sql+如何去重复数据,数据库去重复数据

    在数据库管理过程中,去除重复数据是一项非常重要的任务。这不仅有助于提高数据质量,还能优化查询性能,确保数据的一致性和准确性。SQL作为一种广泛使用的数据库语言,提供了多种方法来处理重复数据问题。根据提供...

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

    ### SQL Server删除重复数据的方法 在数据库管理过程中,经常会...以上三种方法各有优缺点,可以根据实际情况选择最适合的方法来删除SQL Server中的重复数据。需要注意的是,在操作前最好备份数据以防意外情况发生。

    sql去掉重复的数据 完全相同的数据去掉重复 及优化

    本文详细介绍了如何使用SQL去除表中的重复数据,并提供了一些性能优化的建议。通过这些方法和技术的应用,可以有效地提高数据质量和数据库系统的整体性能。希望这些知识能够帮助你在实际工作中更加高效地处理数据...

    SQL语句删除重复记录

    在这种方法中,我们首先将重复的记录记入一个临时表temp1,然后将不重复的记录记入另一个临时表temp2,最后删除原表中的重复记录并将temp2中的记录插入回原表。 优点:这种方法可以快速删除重复记录,且对大型...

    sql 查询重复数据

    在数据库中,查询和处理重复数据是一项常见的任务。本文将详细介绍查询和处理重复数据的方法,包括查找所有重复记录、查找重复记录、删除重复记录等。 查找所有重复记录 使用以下 SQL 语句可以查找所有重复记录: ...

    查询重复数据sql语句

    在数据库管理过程中,查询重复数据是一项非常重要的任务。这不仅有助于确保数据的准确性和完整性,还可以提高数据分析的质量。本文将详细介绍如何使用SQL语句来查询表中的重复数据,并基于提供的SQL示例进行深入分析...

    sql+如何去重复数据

    在SQL中,处理重复数据是常见的数据清洗任务。当我们面对数据表中存在多条相同记录的问题时,需要采取策略来去除这些重复项,确保数据的唯一性和准确性。以下是一些关于如何在SQL中去重的关键知识点: 1. **...

    经常面试到的SQL题(查询重复数据和清除重复数据)

    在Oracle或SQL Server等其他数据库系统中,可以使用`MERGE`语句来删除重复数据,或者在创建新表后使用`TRUNCATE`和`RENAME`命令替换原有表。 然而,这种方法可能会遇到问题,比如当表有多个字段时,哪些字段组合...

    SQL删除表里的重复数据的两种方法

    ### SQL删除表里重复数据的两种方法 在数据库管理中,数据的一致性和准确性是非常重要的。重复的数据不仅会占用额外的存储空间,还可能导致查询结果的不准确。因此,掌握如何有效地删除表中的重复记录是每个数据库...

    在SQL中删除重复记录多种方法

    在SQL中删除重复记录是一个常见的需求,特别是在处理大型数据集时。本文将介绍几种有效的方法,以帮助你在遇到重复记录问题时能有效地清理数据。我们将以Oracle数据库为例,但这些方法在其他SQL数据库系统中也具有...

    如何删除表中重复数据

    ### 如何删除表中重复数据 在数据库管理与维护的过程中,经常会遇到表中存在重复记录的问题,这不仅会造成数据冗余、浪费存储空间,还可能导致数据分析结果失真。因此,了解如何有效地删除表中的重复数据是一项重要...

    轻松消除SQL SERVER重复记录

    标题提到的"轻松消除SQL SERVER重复记录"是指在SQL Server环境中高效、便捷地去除数据库表中的重复行。描述中提到的问题是开发人员在查询和统计时可能遇到的挑战,即由于重复记录导致的结果不准确。下面我们将详细...

    查询和删除表中重复数据sql语句

    标题和描述概述的知识点主要集中在SQL语言中处理表内重复数据的方法上,涵盖了查询与删除重复数据的不同场景。下面将详细解析这些知识点: ### 查询表中重复数据 #### 单字段重复数据查询 ```sql SELECT * FROM ...

    SQL删除重复列

    本文将围绕“SQL删除重复列”的主题,深入探讨如何有效地利用SQL语句来处理表中的重复数据。 #### 一、理解SQL中的重复数据问题 在实际应用中,由于数据录入错误、系统合并等多种原因,数据库表中可能会出现大量的...

    sql删除表中重复记录方法

    标题与描述概述的知识点是关于如何使用SQL语句来删除数据库表中的重复记录,这是一个在数据清理和维护数据完整性时非常实用的技术。以下是对给定文件中四种方法的详细解析和扩展,旨在帮助读者深入理解并掌握这些...

    删除Access数据库中重复的数据

    在使用Microsoft Access构建数据库时,有时可能会出现重复的数据,这可能会导致数据不一致性和效率...在使用过程中,理解数据模型、熟悉SQL查询以及掌握Access的高级功能,将使你更加熟练地管理数据库中的重复数据。

Global site tag (gtag.js) - Google Analytics