oracle刪除重複的行怎麼刪啊

時間 2021-08-30 15:06:47

1樓:匿名使用者

可用rowid來刪除。

如表中有如下資料:

delete from test where rowid not in (select min(rowid) from test group by name);

commit;

執行後結果,表名多餘的內容已經刪除。

注意事項:delete語句執行後,需要commit提交,否則只在當前session下有效。

2樓:匿名使用者

假設你表名為a 唯一的欄位名為 ***x, 按如下方式

delete a where a.rowid not in( select min(a.rowid) from a group by a.***x)

每個表都有一個rowid列

3樓:

--直接給連線是最不負責任的,我直接給你你需要的sql。給我分吧,沒啥說的。

delete from vitae a

where rowid <> (select min(rowid)from vitae

where peopleid = a.peopleidand seq = a.seq);

4樓:匿名使用者

通過rowid來刪除

delete (select id,rownum from table_name) c where c.rownum=2;

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

5樓:匿名使用者

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);

6樓:

delete from dept where rowid not in

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

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

7樓:

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

8樓:匿名使用者

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

9樓:o期待

用pl-sql解決方法

select * from 表名 for update;

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

10樓:匿名使用者

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

oracle語句怎麼刪除外來鍵約束,只是刪約束,不是刪表

假如有主表 test main 與 子表 test subsql 建立外來鍵 預設選項 sql alter table test sub add constraint main id cons foreign key main id references test main table altere...

oracle如何刪除一行資料,Oracle中如何刪除一條記錄?

delete from table1 where commit delete from tablename where colunmname commit pl sql dev的話有個簡單的方法 首先,用select.for update語句查出結果然後,開鎖,用和滑鼠選中你要刪除的一行 最後,選擇...

oracle資料庫重複資料刪除的幾種方法

用這種效率最高的就可以 比如,某個表要按照id和name重複,就算重複資料delete from 表名 where rowid not in select min rowid from 表名 group by id,name commit 如果以id,name和grade重複算作重複資料delete...