sql 删除重复记录实现方法

 

  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子句中省去此列)

(四)
查询重复

 代码如下 复制代码

select * from tablename where id in (

select id from tablename

group by id

having count(id) > 1

 

时间: 2024-10-23 07:01:18

sql 删除重复记录实现方法的相关文章

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

重复|重复记录  学习sql有一段时间了,发现在我建了一个用来测试的表(没有建索引)中出现了许多的重复记录.后来总结了一些删除重复记录的方法,在Oracle中,可以通过唯一rowid实现删除重复记录:还可以建临时表来实现...这个只提到其中的几种简单实用的方法,希望可以和大家分享(以表employee为例). SQL> desc employee  Name                                      Null?    Type ------------------

SQL重复记录查询 查询多个字段、多表查询、删除重复记录的方法_Mysql

SQL重复记录查询 1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断  select * from people where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1) 例二:  select * from testtable where numeber in (select number from people group by numb

sql 删除重复记录语句收藏

sql 删除重复记录语句收藏 删除重复记录的题目.现给出解决此题的答案,如下: select distinct * into Temp from Student truncate table Student insert Student select * from Temp drop table Temp --至此删除了重复的数据. --显示删除后的结果 select * from student 思路是先查询出没有重复的数据保存到一个临时的表Temp里面,然后再用truncate关键字删除目标

SQL Server中快速删除重复记录的方法

开发人员的噩梦--删除重复记录 想必每一位开发人员都有过类似的经历,在对数据库进行查询或统计的时候不时地会碰到由于表中存在重复的记录而导致查询和统计结果不准确.解决该问题的办法就是将这些重复的记录删除,只保留其中的一条. 在SQL Server中除了对拥有十几条记录的表进行人工删除外,实现删除重复记录一般都是写一段代码,用游标的方法一行一行检查,删除重复的记录.因为这种方法需要对整个表进行遍历,所以对于表中的记录数不是很大的时候还是可行的,如果一张表的数据达到上百万条,用游标的方法来删除简直是个

sql查询数据中重复记录并删除重复记录的方法总结

查找所有重复标题的记录:     SELECT * FROM t_info a WHERE ((SELECT COUNT(*) FROM t_info WHERE Title = a.Title) > 1) ORDER BY Title DESC   一.查找重复记录 1.查找全部重复记录     Select * From 表 Where 重复字段 In (Select 重复字段 From 表 Group By 重复字段 Having Count(*)>1)   2.过滤重复记录(只显示一条

sql 删除重复记录

下面我们就来看看如何删除重复记录如果一张表的数据达到上百万条,用游标的方法来删除简直是个噩梦,因为它会执行相当长的一段时间--    开发人员的噩梦--删除重复记录  想必每一位开发人员都有过类似的经历,在对数据库进行查询或统计的时候不时地会碰到由于表中存在重复的记录而导致查询和统计结果不准确.解决该问题的办法就是将这些重复的记录删除,只保留其中的一条.   在SQL Server中除了对拥有十几条记录的表进行人工删除外,实现删除重复记录一般都是写一段代码,用游标的方法一行一行检查,删除重复的记

SQL Server2008中删除重复记录的方法分享_mssql2008

现在让我们来看在SQL SERVER 2008中如何删除这些记录, 首先,可以模拟造一些简单重复记录: 复制代码 代码如下: Create Table dbo.Employee ( [Id] int Primary KEY , [Name] varchar(50), [Age] int, [Sex] bit default 1 ) Insert Into Employee ([Id] , [Name] , [Age] , [Sex] ) Values(1,'James',25,default)

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

表结构: mysql> desc demo; +-------+------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------+------------------+------+-----+---------+----------------+ | id | int(11) unsigned | NO | PRI | NULL

Excel 2007快速删除重复记录的方法

在Excel中录入数据后,我们一般用高级筛选来处理删除重复的记录,Excel 2007保留了这个功能,同时又增加了一个"删除重复项"按钮,使操作更加简单.灵活. 一.传统方法:使用高级筛选 步骤如下: 1.单击数据区,选中其中的任一个单元格.如果只是针对其中部分字段和记录进行筛选,可先选中这部分区域.注意:只对连续选中的矩形区域有效. 2.单击"数据"标签,再单击下面工具栏中的"排序与筛选"区中的"高级"按钮,如图1.