導航:首頁 > 編程大全 > 如何用c語言找重復的資料庫

如何用c語言找重復的資料庫

發布時間:2023-04-06 21:18:56

⑴ 如何查找和刪除資料庫中的重復數據

法一: 用Group by語句 此查找很快的select count(num), max(name) from student –查找表中num列重復的,列出重復的記錄數,並列出他的name屬性group by numhaving count(num) >;1 –按num分組後找出表中num列重復,即出現次數大於一次delete from student(上面Select的)這樣的話就把所有重復的都刪除了。—–慎重法二:當表比較大(例如10萬條以上)時,這個方法的效率之差令人無法忍受,需要另想辦法:—- 執行下面SQL語句後就可以顯示所有DRAWING和DSNO相同且重復的記錄SELECT * FROM EM5_PIPE_PREFABWHERE ROWID!=(SELECT MAX(ROWID) FROM EM5_PIPE_PREFAB D –D相當於First,SecondWHERE EM5_PIPE_PREFAB.DRAWING=D.DRAWING ANDEM5_PIPE_PREFAB.DSNO=D.DSNO);—- 執行下面SQL語句後就可以刪除所有DRAWING和DSNO相同且重復的記錄DELETE FROM EM5_PIPE_PREFABWHERE ROWID!=(SELECT MAX(ROWID) FROM EM5_PIPE_PREFAB DWHERE EM5_PIPE_PREFAB.DRAWING=D.DRAWING ANDEM5_PIPE_PREFAB.DSNO=D.DSNO);法一: 用Group by語句 此查找很快的select count(num), max(name) from student –查找表中num列重復的,列出重復的記錄數,並列出他的name屬性group by numhaving count(num) >;1 –按num分組後找出表中num列重復,即出現次數大於一次delete from student(上面Select的)這樣的話就把所有重復的都刪除了。—–慎重法二:當表比較大(例如10萬條以上)時,這個方法的效率之差令人無法忍受,需要另想辦法:—- 執行下面SQL語句後就可以顯示所有DRAWING和DSNO相同且重復的記錄SELECT * FROM EM5_PIPE_PREFABWHERE ROWID!=(SELECT MAX(ROWID) FROM EM5_PIPE_PREFAB D –D相當於First,SecondWHERE EM5_PIPE_PREFAB.DRAWING=D.DRAWING ANDEM5_PIPE_PREFAB.DSNO=D.DSNO);—- 執行下面SQL語句後就可以刪除所有DRAWING和DSNO相同且重復的記錄DELETE FROM EM5_PIPE_PREFABWHERE ROWID!=(SELECT MAX(ROWID) FROM EM5_PIPE_PREFAB DWHERE EM5_PIPE_PREFAB.DRAWING=D.DRAWING ANDEM5_PIPE_PREFAB.DSNO=D.DSNO);

⑵ 如何查找資料庫中的重復數據

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)如何用c語言找重復的資料庫擴展閱讀

FROM子句指定SELECT語句查詢及與查凳凱詢相關的表或視圖。在FROM子句中最多可指定256個表或視圖,它們之間用逗號分隔。

在FROM子句同時指定多個表或視圖時,如果選擇列表中存在同名列,這時應使用對象名限定這些列所屬的表或視圖。

例如在usertable和citytable表中同時存在cityid列,在查詢兩個表中的cityid時應使用下面語句格式加以限定:

SELECTusername,citytable.cityid

FROMusertable,citytable

WHEREusertable.cityid=citytable.cityid

在FROM子句中可用以下兩種格式為表或視圖指定別名:

表名 as 別名

表名 別名

參考資蔽讓料:百棗並喚度網路 SELECT語句



⑶ 如何查找資料庫中的重復數據

實現方式如下:

DimcnnAsObject,rsAsObject,SQL$,i&,s$
Setcnn=CreateObject("ADODB.Connection")
cnn.Open"Provider=Microsoft.Jet.Oledb.4.0;dataSource="&ThisWorkbook.Path&"排課數據.mdb"
SQL="Select星期&節&班級,count(星期&節&班級)from排課where星期isnotnullgroupby星期&節&班級havingcount(星期&節&班級)>1"
Setrs=CreateObject("ADODB.Recordset")
搏盯rs.OpenSQL,cnn,1,3
Ifrs.RecordCountThen
Fori=1Tors.RecordCount
唯銀陸s=s&vbCrLf&"星期"&rs.Fields(0)&"班,重復次數:"&rs.Fields(1)
rs.MoveNext
Next
MsgBox"有"&rs.RecordCount&"條記錄重復:"&s
Else
MsgBox"沒有發現重復記錄"
EndIf
rs.Close
cnn.Close
指頃Setrs=Nothing
Setcnn=Nothing
EndSub

1。刪除全部重復記錄(慎用)

Delete表Where重復欄位In(Select重復欄位From表GroupBy重復欄位HavingCount(*)>1)

2。保留一條(這個應該是大多數人所需要的^_^)

DeleteHZTWhereIDNotIn(SelectMax(ID)FromHZTGroupByTitle)

註:此處保留ID最大一條記錄

3、查找表中多餘的重復記錄(多個欄位)

select*fromvitaea

where(a.peopleId,a.seq)in(selectpeopleId,seqfromvitaegroupbypeopleId,seqhavingcount(*)>1)4、刪除表中多餘的重復記錄(多個欄位),只留有rowid最小的記錄

deletefromvitaea

where(a.peopleId,a.seq)in(selectpeopleId,seqfromvitaegroupbypeopleId,seqhavingcount(*)>1)

androwidnotin(selectmin(rowid)fromvitaegroupbypeopleId,seqhavingcount(*)>1)

閱讀全文

與如何用c語言找重復的資料庫相關的資料

熱點內容
桌面文件可以保存在哪裡 瀏覽:136
世界之窗修改密碼 瀏覽:555
系統文件巨大 瀏覽:138
重點畢業生數據採集有什麼用 瀏覽:341
手機抖音上的app在哪裡 瀏覽:215
thinkpad裝win7教程 瀏覽:793
2012文件伺服器資源管理器 瀏覽:459
純凈版win1032位改64 瀏覽:413
農產品行業融資主要分析哪些數據 瀏覽:601
華為微信不上網路設置 瀏覽:727
查看qq聊天記錄 瀏覽:931
nih是什麼意思網路用語 瀏覽:456
網路營銷課程設計公眾號論文 瀏覽:902
淘寶低價海關扣押蘋果 瀏覽:335
javadouble和float 瀏覽:303
atmega8下載程序 瀏覽:819
飛鴿傳輸文件和qq哪個快 瀏覽:519
怎樣在win10安裝winxp 瀏覽:354
iphone5s照片模糊不清怎麼解決 瀏覽:75
ps文件過大閃退怎麼辦 瀏覽:325

友情鏈接