Oracle 刪除重複資料只留一條

2022-09-05 18:30:12 字數 1849 閱讀 2392

1、查詢表中多餘的重覆記錄,重覆記錄是根據單個字段(id)來判斷

select * from 表 where id in (select id from 表 group byid h**ing count(id) > 1)

2、刪除表中多餘的重覆記錄,重覆記錄是根據單個字段(id)來判斷,只留有rowid最小的記錄

delete from 表 where (id) in ( select id from 表 group by id h**ing count(id) > 1) and rowid not in (select min(rowid) from 表 group by id h**ing count(*) > 1);

3、查詢表中多餘的重覆記錄(多個字段)

select * from 表 a where (a.id,a.seq) in(select id,seq from 表 group by id,seq h**ing count(*) > 1)

4、刪除表中多餘的重覆記錄(多個字段),只留有rowid最小的記錄

delete from 表 a where (a.id,a.seq) in (select id,seq from 表 group by id,seq h**ing count(*) > 1) and rowid not in (select min(rowid) from 表 group by id,seq h**ing count(*)>1)

5、查詢表中多餘的重覆記錄(多個字段),不包含rowid最小的記錄

select * from 表 a where (a.id,a.seq) in (select id,seq from 表 group by id,seq h**ing count(*) > 1) and rowid not in (select min(rowid) from 表 group by id,seq h**ing count(*)>1)

1、查詢表中多餘的重覆記錄,重覆記錄是根據單個字段(id)來判斷

select * from 表 where id in (select id from 表 group byid h**ing count(id) > 1)

2、刪除表中多餘的重覆記錄,重覆記錄是根據單個字段(id)來判斷,只留有rowid最小的記錄

delete from 表 where (id) in ( select id from 表 group by id h**ing count(id) > 1) and rowid not in (select min(rowid) from 表 group by id h**ing count(*) > 1);

3、查詢表中多餘的重覆記錄(多個字段)

select * from 表 a where (a.id,a.seq) in(select id,seq from 表 group by id,seq h**ing count(*) > 1)

4、刪除表中多餘的重覆記錄(多個字段),只留有rowid最小的記錄

delete from 表 a where (a.id,a.seq) in (select id,seq from 表 group by id,seq h**ing count(*) > 1) and rowid not in (select min(rowid) from 表 group by id,seq h**ing count(*)>1)

5、查詢表中多餘的重覆記錄(多個字段),不包含rowid最小的記錄

select * from 表 a where (a.id,a.seq) in (select id,seq from 表 group by id,seq h**ing count(*) > 1) and rowid not in (select min(rowid) from 表 group by id,seq h**ing count(*)>1)

Oracle刪除重複資料

在oracle中,有個隱藏了自動rowid,裡面給每條記錄乙個唯一的rowid,我們如果想保留最新的一條記錄,我們就可以利用這個字段,保留重複資料中rowid最大的一條記錄就可以了。下面是查詢重複資料的乙個例子 select a.rowid,a.from 表名 a where a.rowid sel...

ORACLE刪除重複資料

我們可能會出現這種情況,某個表原來設計不周全,導致表裡面的資料資料重複,那麼,如何對重複的資料進行刪除呢?重複的資料可能有這樣兩種情況,第一種時表中只有某些字段一樣,第二種是兩行記錄完全一樣。一 對於部分字段重複資料的刪除 先來談談如何查詢重複的資料吧。下面語句可以查詢出那些資料是重複的 selec...

oracle 複製資料 刪除重複資料

最簡單的複製 insert into a kcdm,zklb,kksj i select kcdm,zklb,kksj i from b 產生疑惑的地方 如果a有乙個自增的id,語句該怎麼寫?開始想法 insert into a id,kcdm,zklb,kksj i select seq a id...