sql刪除重復(fù)的數(shù)據(jù) 如何刪除oracle數(shù)據(jù)庫中的重復(fù)記錄?
如何刪除oracle數(shù)據(jù)庫中的重復(fù)記錄?delete from GXS_VIEW_PATIENT_INFO where rowid not in (select min(rowid) from GXS
如何刪除oracle數(shù)據(jù)庫中的重復(fù)記錄?
delete from GXS_VIEW_PATIENT_INFO where rowid not in (select min(rowid) from GXS_VIEW_PATIENT_INFO group by 某字段) 某字段就是按照某幾個分組 比如數(shù)據(jù)id name1 a1 a1 a 你最后group by id或者group by name都可以但是如果 id name1 a1 a1 a2 a但是像上邊這樣,最后也只能保留一條,所以你得找到一個group by 的字段 不過這個慎用,數(shù)據(jù)多的時候會很慢的,刪除前備份一下數(shù)據(jù)吧
sql中如何刪除一個表中重復(fù)的記錄?
數(shù)據(jù)庫去重復(fù)有以下三種方法:
1.兩條記錄或者多條記錄的每一個字段值完全相同,這種情況去重復(fù)最簡單,用關(guān)鍵字distinct就可以去掉。
2.兩條記錄之間之后只有部分字段的值是有重復(fù)的,但是表存在主鍵或者唯一性ID。如果是這種情況的話用DISTINCT是過濾不了的,這就要用到主鍵id的唯一性特點及group by分組。
3.兩條記錄之間之后只有部分字段的值是有重復(fù)的,但是表不存在主鍵或者唯一性ID。這種情況可以使用臨時表,講數(shù)據(jù)復(fù)制到臨時表并添加一個自增長的ID,在刪除重復(fù)數(shù)據(jù)之后再刪除臨時表。