刪除重複資料思路

2021-06-21 21:12:59 字數 977 閱讀 2968

1.在運算元據庫的時候往往會出現一條資料重複出現多次,而且沒有唯一標識的情況下該如何刪除重複資料呢?

解決方案: 先用distinct 查出所有不重複的資料,然後存入到乙個臨時表中,刪除現有表的所以資料,把臨時表資料匯入。

select   distinct   *   into   #tmp    from   emp   

delete   from   emp   

insert   into   emp   select   *   from   #tmp

(2)但是如果不可以使用臨時表,那該怎麼辦? 

我們觀察到我們沒辦法區分資料(物理位置不一樣,對 sql server來說沒有任何區別),思路自然是想辦法把資料區分出來了,既然現在的所有的列都沒辦法區分資料,唯一的辦法就是再加個列讓它區分出來,加什麼列好?最佳選擇是identity列:

alter   table   emp   add   chk   int   identity(1,1)

表示例:

name   age   chk     

tom     16     1     

sun      14     2     

tom     16     3     

tom     16     4

重覆記錄可以表示為:

select   *   from   emp where (select   count(*)   from   emp   e   where   e.name=emp.name)>1

要刪除的是:

delete   from   emp 

where (select   count(*)   from   emp   e     where   e.name=emp.name   and   e.chk>=emp.chk)>1

再把新增的列刪掉,出現結果。

alter   table   emp   drop   column   chk

刪除重複資料

介紹兩種刪除重複行的方式 1.使用臨時表,分組找出重複部分的id進行刪除 刪除table goods info 中存在重複goods id的記錄 select identity int,1,1 as autoid,into temptable from goods info select min a...

sql刪除重複資料

1 建立表 create table dbo test id numeric 18,0 identity 1,1 not null primary key,name varchar 200 collate chinese prc ci as null remark varchar 1024 coll...

mysql刪除重複資料

最近遇到刪除重複資料的問題,先分享一下解決辦法,如有不完善之處還望包涵!舉例如下 mysql select from table03 id name degree 1 fly 90 2 fly 90 3 fly 90 4 fly 80 5 wang 90 6 wang 90 7 wang 90 8 ...