示例
假設存在一個產品信息表Procts,其表結構如下:
CREATETABLEProcts(
ProctIDint,
ProctNamenvarchar(40),
Unitchar(2),
UnitPricemoney
)
表中數據如圖:
*fromProcts_tempdroptableProcts_temp
這樣就完成了對表中重復記錄的刪除。無論表有多大,它的執行速度都是相當快的,而且因為幾乎不用寫語句,所以它也是很安全的
B. 如何查找資料庫中的重復數據
1、查找表中多餘的重復記錄,重復記錄是根據單個欄位(peopleId)來判斷
select * from peoplewhere peopleId in (select peopleId from people group by peopleId having count (peopleId) > 1)
2、刪除表中多餘的重復記錄,重復記錄是根據單個欄位(peopleId)來判斷,只留有rowid最小的記錄
delete from peoplewhere peopleId in (select peopleId from people group by peopleId having count (peopleId) > 1)and rowid not in (select min(rowid) from people group by peopleId having count(peopleId )>1)
3、查找表中多餘的重復記錄(多個欄位)
select * from vitae awhere (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having
(2)wpf資料庫表存相同內容擴展閱讀
FROM子句指定SELECT語句查詢及與查詢相關的表或視圖。在FROM子句中最多可指定256個表或視圖,它們之間用逗號分隔。
在FROM子句同時指定多個表或視圖時,如果選擇列表中存在同名列,這時應使用對象名限定這些列所屬的表或視圖。
例如在usertable和citytable表中同時存在cityid列,在查詢兩個表中的cityid時應使用下面語句格式加以限定:
SELECTusername,citytable.cityid
FROMusertable,citytable
WHEREusertable.cityid=citytable.cityid
在FROM子句中可用以下兩種格式為表或視圖指定別名:
表名 as 別名
表名 別名
C. 資料庫中某欄位存在相同數據,怎麼刪除第一條記錄;
單純用SQL語句,我們可以利用自增ID列來刪除有重復的第一條記錄,如果數據表不含自增ID列那麼就得依靠游標或應用程序端編程來解決了,因為資料庫引擎搞不清楚究竟那一條記錄是第一條。
下面是利用自增ID列刪除t1表a列有重復的第一條記錄的SQL語句示例:
delete from t1 where id in (
select min(id) from t1 group by a
having count(1)>1);
需要說明一下,刪除有重復的記錄中的第一條記錄在邏輯上並不能保證數據表不再存在重復,因為,因為重復記錄可以有無限多條而不僅僅是只有兩條重復一種情況。
下面語句可以刪除t1表中a列有重復的記錄,對於有重復的記錄只保留最新的那一條記錄,讓該表不再有重復:
D. 資料庫中如何保存主鍵內容重復的信息
主鍵的定義就是:必須唯一的標識每一條記錄。你可以試試改下主鍵,比如使用組合碼。如果有需要你也可以多增加一列,SID用這種無意義的物理主鍵取代你現在有的物理主鍵,把原先的主鍵去掉作為邏輯主鍵。有不明白的可以繼續問。