有兩個意義上的重覆記錄,一是完全重複的記錄,也即所有欄位均重複的記錄,二是部分關鍵字段重複的記錄,比如name欄位重複,而其他欄位不一定重複或都重複可以忽略。
1、對於第一種重複,比較容易解決,使用
select distinct * from tablename
就可以得到無重覆記錄的結果集。
如果該錶需要刪除重複的記錄(重覆記錄保留1條),可以按以下方法刪除
複製** **如下:
select distinct * into #tmp from tablename
drop table tablename
select * into tablename from #tmp
drop table #tmp
發生這種重複的原因是表設計不周產生的,增加唯一索引列即可解決。
2、這類重複問題通常要求保留重覆記錄中的第一條記錄,操作方法如下
假設有重複的字段為name,address,要求得到這兩個字段唯一的結果集
複製** **如下:
select identity(int,1,1) as autoid, * into #tmp from tablename
select min(autoid) as autoid into #tmp2 from #tmp group by name,autoid
select * from #tmp where autoid in(select autoid from #tmp2)
最後乙個select即得到了name,address不重複的結果集(但多了乙個autoid欄位,實際寫時可以寫在select子句中省去此列)
sql 刪除重複資料語句
現在有表資料如下圖1 需要刪除表中除id外重複的資料,實現如下圖所示效果圖2 篩選根據name,value分組後id最大的非重複資料 select max id from deleterepeat group by name value 下面是實現效果圖2 的語句 delete from delet...
通過SQL語句刪除重覆記錄
最近在專案裡碰到很多重覆記錄的事情,因為是設計業務裡的具體數值,所以不敢輕易全部刪除,資料量也很大,所以就倒騰了點 在sql裡進行刪除 純屬菜鳥,還望高手指教啊 1 建立臨時表23 ifexists select from tempdb.dbo.sysobjects whereid object i...
ACCESS中用SQL語句建立表,修改,刪除表
1.建立表 create table t test id counter 1,1 primary key,u name varchar 50 fatherid int id counter 1,1 primary key 設定id 為主鍵並自動增長 2.修改字段型別 sql alter table ...