如題,SQL查詢和刪除重複值,例子是在Oracle環境下,相似寫法網上不少。
一、利用distinct關鍵字去重
二、利用group by分組去重(這裏沒有實驗出來就不寫了)
三、利用rowid查詢去重(我的推薦這個,rowid查詢速度是最快的)測試
先一張測試表(USERS),裏面有不少重複數據
spa
方法一:distinct關鍵字code
/*對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後面條件適當修改)it
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 )