導航:首頁 > 編程大全 > 如何用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語言找重復的資料庫相關的資料

熱點內容
三星電視智能升級卡 瀏覽:327
word文件字型大小 瀏覽:460
word文檔去除下劃線 瀏覽:576
貝多芬交響曲版本 瀏覽:532
下載的視頻文件損壞了 瀏覽:119
怎麼把jpg轉成cad格式的文件大小 瀏覽:674
如何編程真人快打 瀏覽:57
double運行數據最長多少 瀏覽:367
tr90如何看數據 瀏覽:418
word裡面插了一個文件怎麼打開 瀏覽:40
蘋果7限時秒殺1999元 瀏覽:748
如何提升app推送觸達率 瀏覽:584
vba用kill刪除文件路徑錯誤 瀏覽:648
linux查看10個文件總大小 瀏覽:423
形色app怎麼回復別人 瀏覽:690
折彎機如何進入編程 瀏覽:676
編程一般要什麼配置 瀏覽:998
不讓u盤從電腦上拷貝文件 瀏覽:812
萬和導航儀升級 瀏覽:391
壓縮文件隱藏在圖片 瀏覽:498

友情鏈接