oracle刪除重複記錄只保留一條資料的幾種方法

時間 2021-10-14 22:25:42

1樓:匿名使用者

你好:一種簡單方式就是直接根據你不想要的資料進行分組後儲存到另外一張表裡面

create table as select * from b group id;

可以寫儲存過程來實現判斷重複資料後刪除。

另外一種方法就是插入的時候直接設定主見不讓他插入,直接提示不能插入。

這個可以參考資料

oracle中刪除兩條相同記錄中的一條,該怎麼操作?

2樓:匿名使用者

1.不含大欄位(clob等)的**:

--例子**:create table test(a number,b number);

--方法一:通過group by + rowid,效率低

delete from test t

where t.rowid not in (select min(rowid) from test group by a, b);

--方法二:通過 create + rename + distinct ,效率高

create table test_tmp as

select distinct * from test t;

drop table test;

alter table test_tmp rename to test;

2.含大欄位(clob等)的**:

--例子**:create table test(a number,b clob);

--clob 長度小於4000:

select distinct t.a,to_char(t.b) as b from test t;

--clob 長度大於4000:

select *

from test a

where a.rowid = (select max(b.rowid)

from test b

where b.a = a.a

and nvl(dbms_lob.compare(b.b, a.b), 0) = 0);

3樓:

delete from dept where rowid not in

(select min(rowid) from dept group by deptno , dname ,loc)

這樣可以保證所有的重複資料僅保留一條,其餘的刪除

4樓:

oracle中有一個偽列,rownum,用來標識行,可以用這個來試試

5樓:匿名使用者

delete from dept where rownum not in (select max(rownum) from dept group by deptno,dname,loc)

6樓:o期待

用pl-sql解決方法

select * from 表名 for update;

然後點然後再點要刪除的行,在點ok!

7樓:匿名使用者

不能用delete刪除,要單獨刪吧。

Oracle查詢並刪除重複記錄的SQL語句,如下內容

病句 表中有重複 col1是主鍵 哈哈.ora 00001 給個例子 根據rowid來刪 效率應該還可以 自己試試 sql select a.rowid from t a id name rowid 1 clark aaaxvzaaeaad8waaaa 2 johns aaaxvzaaeaad8wa...

excel刪除重複項只保留一項,EXCEL中如何刪除重複內容只保留一個

以素材為例,工作表中有三列資料,a列為姓名,b列為年齡,c列為部門。其中4行和6行姓名重複,其他資料不一樣,不屬於重複項。12行和14行資料完全一致,屬於重複項。現在需要刪除這些重複項該怎麼操作呢?一兩行資料很快就能完成,如果重複項太多就比較麻煩了。第一種方法 公式 公式法適用於低版本的excel。...

oracle某個欄位有重複資料如何刪除多餘資料只保

1 查詢表中多餘的重複記錄,重複記錄是根據單個欄位 peopleid 來判斷。2 刪除表中多餘的重複記錄,重複記錄是根據單個欄位 peopleid 來判斷,只留有rowid最小的記錄。3 查詢表中多餘的重複記錄 多個欄位 4 刪除表中多餘的重複記錄 多個欄位 只留有rowid最小的記錄。5 查詢表中...