SQL怎样删除重复数据?
4个回答
展开全部
首先删除一张表中可能存在的重复数据:
delete from 表 where 字段1 in
(select 字段1 from
(select 字段1,row_number() over (partition by 字段1 order by 字段2 desc) rn from 表)
where rn>1);
以上字段1为需要删除的依据字段,比如说你需要删除重复的邮箱,那么字段1表示邮箱,而字段2是按照顺序你需要保留的记录,比如说按照时间排序,保留时间最近的那个邮箱。
删除一张表中的另一个表中已经存在的记录
delete from 表1 where exists
(selete 1 from 表2 where 表1.字段=表2.字段);
delete from 表 where 字段1 in
(select 字段1 from
(select 字段1,row_number() over (partition by 字段1 order by 字段2 desc) rn from 表)
where rn>1);
以上字段1为需要删除的依据字段,比如说你需要删除重复的邮箱,那么字段1表示邮箱,而字段2是按照顺序你需要保留的记录,比如说按照时间排序,保留时间最近的那个邮箱。
删除一张表中的另一个表中已经存在的记录
delete from 表1 where exists
(selete 1 from 表2 where 表1.字段=表2.字段);
展开全部
没太明白你的意思
是删除列么
删除列语句:
Alter
table
tablename
Drop
column
Columnname
根据字符判断,如果首字符都是英文的话
delete
from
table
where
ascii(left('名称',1))<128
测试了
这个对
delete
from
table
where
编号
in
(
select
编号
from
table
group
by
编号
having
count(编号)>1)
and
名称
not
in
(
select
名称
from
table
where
ascii(left(名称,1))>128)
是删除列么
删除列语句:
Alter
table
tablename
Drop
column
Columnname
根据字符判断,如果首字符都是英文的话
delete
from
table
where
ascii(left('名称',1))<128
测试了
这个对
delete
from
table
where
编号
in
(
select
编号
from
table
group
by
编号
having
count(编号)>1)
and
名称
not
in
(
select
名称
from
table
where
ascii(left(名称,1))>128)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
批量删除重复数据~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
解决在excel电子表格中,如果混杂有重复数据,如何定位,如何删除的问题。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询