创建表结构:
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)
浙公网安备 33010602011771号