sql server 怎么删除表里重复数据

 我来答
焉爱景镇珍
2019-08-30 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.2万
采纳率:25%
帮助的人:940万
展开全部
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
表名
甲玉巧仰琴
2019-11-18 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.3万
采纳率:32%
帮助的人:784万
展开全部
--group
中的字段是重复的字段名称
delete
tableName
where
tableID
in
(
select
tableID
from
(select
tableID,num=count(*)
from
tableName
group
by
字段1,字段2,tableID)
as
xx
where
xx.num>1)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式