SQL刪除重覆記錄(針對於某幾個字段相同)

2021-08-30 05:28:21 字數 1281 閱讀 5467

例:表中有條六條記錄。   其中張三和王五   的記錄有重複

tablea  

id     customer   phoneno  

001   張三           777777  

002   李四           444444  

003   王五           555555  

004   張三           777777  

005   張三           777777  

006   王五           555555   

如何寫乙個sql語句將tablea變成如下

001   張三           777777  

002   李四           444444  

003   王五           555555

--測試環境

create   table   tablea   (   id   varchar(3),customer   varchar(5),phoneno   varchar(6))  

insert   into   tablea   select   '001','張三','777777'  

union   all   select   '002','李四','444444'  

union   all   select   '003','王五','555555'  

union   all   select   '004','張三','777777'  

union   all   select   '005','張三','777777'  

union   all   select   '006','王五','555555'

--結果

delete   tablea from   tablea t    where  

exists(   

select 1  from  tablea   where   customer=t.customer   and   phoneno=t.phoneno   

and  id < tt.id

--總結

該方法適用於有乙個欄位為自增性,例如本例中的:id

delete   表名 from   表名 as t    where  

exists(   

select 1  from  表名   where   欄位a=t.欄位a   and   欄位b=t.欄位b,(....)   

and  自增列 < t.自增列

SQL查詢重覆記錄,刪除重覆記錄

1 查詢表中多餘的重覆記錄,重覆記錄是根據單個字段 docid 來判斷 select from tablename where docid in select docid from tablename group by docid h ing count docid 1 例二 select from...

SQL 刪除重覆記錄

例如 id name value 1 a pp 2 a pp 3 b iii 4 b pp 5 b pp 6 c pp 7 c pp 8 c iii id是主鍵 要求得到這樣的結果 id name value 1 a pp 3 b iii 4 b pp 6 c pp 8 c iii 方法1delet...

SQL刪除重覆記錄

星期五去一家公司面試sql資料庫工程師,有乙份筆試題目,其中有一題是 現在有乙個表t 姓名,手機號,手機號字段存在重覆記錄,要求用一句sql刪除重覆記錄。我想了想寫了一句建立唯一索引的語句 create unique index t index on t 手機號 交卷了,後來想想也不對,這樣只能保證...