網站首頁 學習教育 IT科技 金融知識 旅遊規劃 生活小知識 家鄉美食 養生小知識 健身運動 美容百科 遊戲知識 綜合知識
當前位置:趣知科普吧 > IT科技 > 

4種方法來刪除Oracle中的重複記錄|如何刪除Oracle中的重複記錄

欄目: IT科技 / 發佈於: / 人氣:1.2W
目錄方法1:查詢重複記錄1、查詢重複記錄。2、從名爲"Names"的列中查詢重複記錄。3、從其他列中查詢重複記錄。方法2:刪除單個重複記錄1、Sele2、刪除所有有重複名稱的行。3、重新輸入沒有重複記錄的行。4、檢視新列表。方法3:刪除多個重複記錄1、選擇要刪除的RowID。2、刪除重複記錄。3、檢查重複記錄。方法4:刪除包含指定列的行1、選擇行。2、透過查詢每行的列來刪除重複行。3、檢視重複記錄。當你使用Oracle時,可能會發現有重複記錄。你可以透過查詢重複行、使用其RowID,或者行地址來刪除它們。在開始之前,你應該創建一個備份表,以防在刪除記錄之後需要引用它們。

方法1:查詢重複記錄

如何刪除Oracle中的重複記錄 4種方法來刪除Oracle中的重複記錄

1、查詢重複記錄。在本例中,查詢示例重複記錄"Alan"。透過輸入下面的SQL,確保要刪除的記錄確實是重複的。

如何刪除Oracle中的重複記錄 4種方法來刪除Oracle中的重複記錄 第2張

2、從名爲"Names"的列中查詢重複記錄。在本例中,列名爲"Names",你要用Names來替換"column_name"。

如何刪除Oracle中的重複記錄 4種方法來刪除Oracle中的重複記錄 第3張

3、從其他列中查詢重複記錄。如果你嘗試從其他列中查詢重複記錄,比如Alan的年齡,而不是他的名字,那麼你需要在"column_name"這個地方輸入"Ages",以此類推。

select column_name, count(column_name) from table group by column_namehaving count (column_name) > 1;

方法2:刪除單個重複記錄

如何刪除Oracle中的重複記錄 4種方法來刪除Oracle中的重複記錄 第4張

1、Select "name from names."在"SQL(結構化查詢語言)"後輸入"select name from names."

如何刪除Oracle中的重複記錄 4種方法來刪除Oracle中的重複記錄 第5張

2、刪除所有有重複名稱的行。在"SQL,"後輸入"delete from names where name='Alan';"。注意,字母大寫很重要,這樣就可以刪除所有名爲"Alan"的行。在"SQL"後輸入"commit"。

如何刪除Oracle中的重複記錄 4種方法來刪除Oracle中的重複記錄 第6張

3、重新輸入沒有重複記錄的行。現在已經刪除了所有名爲"Alan"的行,可以透過輸入"insert into name values ('Alan');"來插入一條記錄。在"SQL"後輸入"commit",創建新行。

如何刪除Oracle中的重複記錄 4種方法來刪除Oracle中的重複記錄 第7張

4、檢視新列表。當你完成上述步驟後,透過輸入"select * from names"檢查一下,確保沒有重複記錄。

SQL > select name from names;NAME------------------------------AlanCarrieTomAlanrows selected.SQL > delete from names where name='Alan';rows deleted.SQL > commit;Commit complete.SQL > insert into names values ('Alan');row created.SQL > commit;Commit complete.SQL > select * from names;NAME------------------------------AlanCarrieTomrows selected.

方法3:刪除多個重複記錄

如何刪除Oracle中的重複記錄 4種方法來刪除Oracle中的重複記錄 第8張

1、選擇要刪除的RowID。在"SQL"後輸入"select rowid, name from names;"。

如何刪除Oracle中的重複記錄 4種方法來刪除Oracle中的重複記錄 第9張

2、刪除重複記錄。在"SQL"後輸入"delete from names a where rowid > (select min(rowid) from names b where b.name=a.name);"來刪除重複記錄。

如何刪除Oracle中的重複記錄 4種方法來刪除Oracle中的重複記錄 第10張

3、檢查重複記錄。完成上述操作後,輸入"select rowid,name from names;",然後輸入"commit",檢查是否仍然存在重複記錄。

SQL > select rowid,name from names;ROWID    NAME------------------ ------------------------------AABJnsAAGAAAdfOAAA AlanAABJnsAAGAAAdfOAAB AlanAABJnsAAGAAAdfOAAC CarrieAABJnsAAGAAAdfOAAD TomAABJnsAAGAAAdfOAAF Alanrows selected.SQL > delete from names awhere rowid > (select min(rowid) from names bwhere b.name=a.name);rows deleted.SQL > select rowid,name from names;ROWID    NAME------------------ ------------------------------AABJnsAAGAAAdfOAAA AlanAABJnsAAGAAAdfOAAC CarrieAABJnsAAGAAAdfOAAD Tomrows selected.SQL > commit;Commit complete.

方法4:刪除包含指定列的行

如何刪除Oracle中的重複記錄 4種方法來刪除Oracle中的重複記錄 第11張

1、選擇行。在"SQL"後輸入"select * from names;"來檢視行。

如何刪除Oracle中的重複記錄 4種方法來刪除Oracle中的重複記錄 第12張

2、透過查詢每行的列來刪除重複行。在"SQL"後輸入"delete from names a where rowid > (select min(rowid) from names b where b.name=a.name and b.age=a.age);"來刪除重複記錄。

如何刪除Oracle中的重複記錄 4種方法來刪除Oracle中的重複記錄 第13張

3、檢視重複記錄。完成上述步驟後,輸入"select * from names;",然後輸入"commit",以檢查是否成功刪除了重複記錄。

SQL > select * from names;NAME         AGE------------------------------ ----------Alan         50Carrie         51Tom         52Alan         50rows selected.SQL > delete from names awhere rowid > (select min(rowid) from names bwhere b.name=a.nameand b.age=a.age);row deleted.SQL > select * from names;NAME         AGE------------------------------ ----------Alan         50Carrie         51Tom         52rows selected.SQL > commit;Commit complete.

警告

登入自己的賬號後創建一個備份表,這樣可以用來顯示進行任何刪除之前的內容(防止出現任何問題)。

SQL > create table alan.names_backup as select * from names;Table created.