怎么删除sql数据库中id重复的数据
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么删除sql数据库中id重复的数据相关的知识,希望对你有一定的参考价值。
参考技术A delete * from table where id in (select id from table group by id having count(1)>1)本回答被提问者采纳怎么样删除SQL SERVER 数据库中重复的数据
我用的是EXCEL导入数据的 每次第二次导入的时候就会出现一些重复的数据
我想问怎么用SQL语句删除导入的重复的数据
表名: meter 里面有 userid userpassword address 你们举个例子吧 里面的字段比较多
delete
from
表
where
aa
in
(select
aa
from
表
group
by
aa
having
count(aa)
>
1)
and
bb
not
in
(select
max(bb)
from
表
group
by
aa
having
count(aa)
>
1);
2、有多种写法:
delete
A
from
B
where
A.AA
=
B.AA
delete
A
from
A,B
where
A.AA
=
B.AA
delete
A
where
AA
in
(select
AA
from
B)
3、使用into关键字:
select
*
into
新表名
from
原表
4、取数据前3位,字段必须是类似char类型,使用类似substring这样的函数(SYBASE是substring,ORACLE是substr):
select
substring(字段,1,3)
from
表名 参考技术A 重复记录如果是整条都重复
这么说 你的表没有主键?
请提供表名 各字段名
给你一个例子
可以直接执行的
--建表
create table school
(
names varchar(23),
adress int,
)
--插数据
insert into school values('this',2)
insert into school values('this',1)
insert into school values('this',1)
insert into school values('that',1)
insert into school values('that',1)
insert into school values('ha',1)
--显示所有记录
select * from school
--删除重复记录
with orders as
(select row_number()over(order by names)id,names,adress from school)
delete orders from
(select min(id)id,names,adress from orders group by names,adress having count(*)>1)
as del
where orders.names = del.names
and orders.adress=del.adress
and orders.id!=del.id本回答被提问者采纳 参考技术B 第一招、把不重复的数据导出到临时表
select distinct * into tmp from 原表;
第二招、删除原表数据
trunacte table 原表;
第三招、将原表数据导回
insert into 原表 select * from tmp;
第四招、删除临时表
drop table tmp;
打完收功。 参考技术C 加一列自动增长的id号吧,不然你以什么作为条件来删除?
找重复的数据:
select a,b,c,d...
from 表
group by a,b,c,d having (count(a)>1)
然后找出重复记录的id号
select id ,a,b,c,d..
where a=..and b=..and c=..and d=..
然后按id号删除
以上是关于怎么删除sql数据库中id重复的数据的主要内容,如果未能解决你的问题,请参考以下文章