多种删除重复记录语句

多种删除重复记录语句
1. 删除全部重复记录(慎用)

delete 表 where 重复字段 in (select 重复字段 from 表 group by 重复字段 having count(*)>1)

2. 保留一条(这个应该是你所需要的)
delete hzt where id not in (select max(id) from hzt group by title)
注:此处保留id最大一条记录

select distinct * into #temp from 表
truncate table 表
insert 表 select * from #temp
drop table

-- <二>
带有标识列
--备份数据

select * into #temp from 表
alter table #temp drop column id

--删除原表数据

truncate table msgtable

--恢复数据并去掉重复数据
insert into 表 select distinct * from #temp

-- <三>

delete from aa where a in ( select a from aa group by a having count(a)>1)

-- <四>

alter table 表 add newfield int identity(1,1)

delete 表

where newfield not in(select min(newfield) from 表 group by 除newfield外的所有字段)

alter table 表 drop column newfield

-- <五>
--添加一个处理的标识字段
alter table 表 add id int identity(1,1)
go
   
--删除重复记录
delete a

from 表 a left join(select id=min(id) from 表 group by a,b)b on a.id=b.id

where b.id is null
go

--删除处理用的标识字段
alter table 表 drop column id?>

时间: 2024-11-05 14:48:02

多种删除重复记录语句的相关文章

sql 删除重复记录语句收藏

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

mysql删除重复记录语句的方法_Mysql

例如: id name value 1 a pp 2 a pp 3 b iii 4 b pp 5 b pp 6 c pp 7 c pp 8 c iii id是主键 要求得到这样的结果 id name value 1 a pp 3 b iii 4 b pp 6 c pp 8 c iii 方法1 delete YourTable where [id] not in ( select max([id]) from YourTable group by (name + value)) 方法2 delet

sql 删除重复记录语句

1),delete from tablename where id not in (select max(id) from tablename group by col1,col2,...) 2),select distinct * into temp from tablename   delete from tablename   insert into tablename select * from temp 评价: 这种操作牵连大量的数据的移动,这种做法不适合大容量但数据操作 3),例如:

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

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

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

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

有用的SQL语句(删除重复记录,收缩日志)

删除重复记录,将TABLE_NAME中的不重复记录保存到#TABLE_NAME中 select distinct * into #table_name from table_name delete from table_name select * into table_name from #table_name drop table #table_name 与此相关的是"select into"选项,可以在数据库属性 对话框中,勾起来此项,或者在Query Analyzer中执行 ex

删除重复记录的sql语句

  删除重复记录的sql语句 我们提供了两款删除重复记录的sql语句,一种是用id not in来实例,也算是联合查询的方法吧,第二种是临时表来删除重复记录. 1),delete from tablename where id not in (select max(id) from tablename group by col1,col2,...) 2),select distinct * into temp from tablename delete from tablename insert

mysql删除重复记录的sql语句与查询重复记录(1/4)

方法1 delete yourtable where [id] not in ( select max([id]) from yourtable group by (name + value)) 方法2 delete a from 表 a left join( select (id) from 表 group by name,value )b on a.id=b.id where b.id is null 查询及删除重复记录的sql语句 查询及删除重复记录的sql语句 1.查找表中多余的重复记录

SQL Server中删除重复记录的SQL语句

方法:  代码如下 复制代码            select distinct * into #tmp from tablename  drop table tablename  select * into tablename from #tmp drop table # tmp 常有时候遇到需要删除SQL Server中的重复记录,这里有一些常用的删除重复记录的SQL, 最常用的 T-SQL 语句:  代码如下 复制代码 DELETE FROM [dbo].[myTable] WHERE