如題,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 )
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/67771.html
閱讀 1357·2021-11-24 09:39
閱讀 1346·2021-11-04 16:12
閱讀 2686·2021-09-24 09:47
閱讀 3337·2021-09-01 10:50
閱讀 1477·2019-08-30 15:55
閱讀 1423·2019-08-30 15:43
閱讀 642·2019-08-30 11:08
閱讀 3578·2019-08-23 18:33