怎么样删除SQL SERVER 数据库中重复的数据

我用的是EXCEL导入数据的每次第二次导入的时候就会出现一些重复的数据我想问怎么用SQL语句删除导入的重复的数据表名:meter里面有useriduserpassword... 我用的是EXCEL导入数据的 每次第二次导入的时候就会出现一些重复的数据
我想问怎么用SQL语句删除导入的重复的数据
表名: meter 里面有 userid userpassword address 你们举个例子吧 里面的字段比较多
展开
 我来答
宁荣花庾霜
2019-10-04 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.4万
采纳率:33%
帮助的人:688万
展开全部
1、必须保证表中有主键或者唯一索引,或者某列数据不能重复。只有这样,才可能使用一句SQL来实现。否则只能考虑其它办法。下面的语句,假定BB列是不重复的,删除后保存BB列值最大的那条记录。
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
表名
蝶儿忙
推荐于2016-12-03 · TA获得超过1.1万个赞
知道大有可为答主
回答量:2629
采纳率:0%
帮助的人:0
展开全部
重复记录如果是整条都重复
这么说 你的表没有主键?

请提供表名 各字段名

给你一个例子
可以直接执行的

--建表
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
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
奔驰M888
2009-11-15 · TA获得超过1.1万个赞
知道大有可为答主
回答量:1846
采纳率:0%
帮助的人:2711万
展开全部
第一招、把不重复的数据导出到临时表
select distinct * into tmp from 原表;

第二招、删除原表数据
trunacte table 原表;

第三招、将原表数据导回
insert into 原表 select * from tmp;

第四招、删除临时表
drop table tmp;

打完收功。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
传说中的鹰王
2009-11-15 · TA获得超过1053个赞
知道小有建树答主
回答量:923
采纳率:87%
帮助的人:551万
展开全部
加一列自动增长的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号删除
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式