如题,SQL查询和删除重复值,例子是在Oracle环境下,类似写法网上很多。
1、利用distinct关键字去重
2、利用group by分组去重(这里没有实验出来就不写了)
3、利用rowid查询去重(个人推荐这个,rowid查询速度是最快的)
先一张测试表(USERS),里面有很多重复数据
方法一:distinct关键字
/*对username字段去重*/ select distinct username from users;
/*根据字段去重,但是多个字段时候只能去全字段重复的数据*/ select distinct username,password from users;
方法二:用rowid方法进行全字段重复查询,也可以按字段查询重复值
注:先查询出最后一条的全字段重复值,在用rowid找出其他剩余的重复值
select * from users u01 where rowid!= ( select max(rowid) from users u02 where u01.username=u02.username and u01.password=u02.password and u01.age=u02.age and u01.sex=u02.sex )
删除重复数据(这里删除的是全字段重复的数据,根据不同情况where后面条件适当修改)
delete from users u01 where rowid!= ( select max(rowid) from users u02 where u01.username=u02.username and u01.password=u02.password and u01.age=u02.age and u01.sex=u02.sex )
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/67771.html
阅读 1359·2021-11-24 09:39
阅读 1347·2021-11-04 16:12
阅读 2689·2021-09-24 09:47
阅读 3339·2021-09-01 10:50
阅读 1479·2019-08-30 15:55
阅读 1425·2019-08-30 15:43
阅读 645·2019-08-30 11:08
阅读 3579·2019-08-23 18:33