關於sql刪除重複資料

2021-10-25 03:22:52 字數 689 閱讀 2160

需求:查詢資料庫,刪除重複資料,保留一條資料。

**如下:

使用多表連線,把一張表當作兩張表來使用。 因為id是不同的 在where判斷條件中 讓內容重複但id不同的資料刪除,保留乙個。在最後刪除多出的一張表。

(最優解):

delete b from biao  a join biao  b on a.classes=b.classes where a.id>b.id;

delete 表名 from 表名 as 別名 join 表名 as 別名 on 鏈結條件 where 判斷條件

(最新版本好像不能用)

先把所有的資料分組(這樣可以把所以不重複的資料給制為一張表),再用新的查詢來查一遍(因為sql裡面 查詢的表是不能直接修改或者刪除),在where 判斷裡,只需要讓原表和分組後的表比較,只要是重複資料的id不等於分組後的id就給刪除掉

delete from biao where id!=

all(select a.id from (select id from biao group by classes) a)

;delete from 表名 where id(主鍵)

!=all

(select id from (select id from 表名 group by 需繫結的所有欄位名)別名)

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...

sql刪除重複資料

sql刪除重複資料 如果該錶需要刪除重複的記錄 重覆記錄保留1條 可以按以下方法刪除 select distinct into tmp from tablename drop table tablename select into tablename from tmp drop table tmp ...

SQL刪除重複資料

這個應用場景也不多說了 with c as select orderid,row number over partition by orderid order by select null as nfrom sales.myorders delete from c where n 1 利用row n...