例:表中有條六條記錄。 其中張三和王五 的記錄有重複
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 手機號 交卷了,後來想想也不對,這樣只能保證...