溫馨提示×

oracle如何刪除重復(fù)的數(shù)據(jù)

小億
84
2024-04-01 10:19:01
欄目: 云計算

在Oracle數(shù)據(jù)庫中,要刪除重復(fù)的數(shù)據(jù),可以使用以下方法:

  1. 使用ROWID和ROWNUM:
DELETE FROM table_name
WHERE ROWID NOT IN
(SELECT MAX(ROWID) 
FROM table_name 
GROUP BY column1, column2, column3);
  1. 使用ROW_NUMBER()函數(shù):
DELETE FROM 
    (SELECT column1, column2, 
        ROW_NUMBER() OVER (PARTITION BY column1, column2 ORDER BY column1) rn 
    FROM table_name) 
WHERE rn > 1;
  1. 使用臨時表:
CREATE TABLE temp_table AS
SELECT DISTINCT * FROM table_name;

TRUNCATE TABLE table_name;

INSERT INTO table_name
SELECT * FROM temp_table;

DROP TABLE temp_table;

以上是幾種常用的方法刪除Oracle數(shù)據(jù)庫中重復(fù)的數(shù)據(jù),根據(jù)具體情況選擇合適的方法。

0