创建表结构:

Create table Del_repeat(

LastName varchar(255),

FirstName varchar(255),

Address varchar(255),

City varchar(255)

)

插入数据:

insert into Del_repeat values('小妹','','苏虹路228号','苏州')

insert into Del_repeat values('小妹','','苏虹路228号','苏州')

insert into Del_repeat values('蒙','刘','苏虹路228号','杭州')

insert into Del_repeat values('东方','','静安66路','上海')

insert into Del_repeat values('蒙','刘','苏虹路','杭州')

insert into Del_repeat values('蒙','刘','苏虹路','杭州')

insert into Del_repeat values('蒙','刘','苏虹路','杭州')

查询结果:

select * from Del_repeat;

select * from Del_repeat group by LastName,FirstName,Address,City having count(*)>1;

 

SQL删重语句:

Delete from Del_repeat where LastName in(select * from Del_repeat group by LastName,FirstName,Address,City having count(*)>1);

原本想使用这个语句删重复的,但是在实现的过程中出问题报错,这里还请各路大神支招帮助。

转换思路,使用语句将独一无二的数据选出来,再进行对比删除。

SQL选择语句:

select * from Del_repeat;(展示所有数据)
select distinct LastName,FirstName,Address,City from Del_repeat;(选出唯一值)

保留唯一值,删除不在子查询中的数据,Delete删去重复row。

SQL删重语句:

Delete from Del_repeat where NOT EXISTS(select distinct LastName,FirstName,Address,City from Del_repeat)

posted on 2018-10-25 15:16  寒光斩岩  阅读(375)  评论(0)    收藏  举报