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

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

1樓:匿名使用者

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

2樓:

delete from dept where rowid not in

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

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

3樓:

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

4樓:匿名使用者

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

5樓:o期待

用pl-sql解決方法

select * from 表名 for update;

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

6樓:匿名使用者

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

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

你好 一種簡單方式就是直接根據你不想要的資料進行分組後儲存到另外一張表裡面 create table as select from b group id 可以寫儲存過程來實現判斷重複資料後刪除。另外一種方法就是插入的時候直接設定主見不讓他插入,直接提示不能插入。這個可以參考資料 oracle中刪除兩...

CAD中這兩條豎槓代表什麼,CAD中兩條線附近標一橫一豎什麼意思 4 是什麼意思 如圖

帶筆了嗎 o 可以代表好多東西 先學習機械製圖在看cad吧 文苑小荷 如果是蘭顏色的應該是牆上的預埋孔,比如空調銅管或換氣扇的出牆孔 cad中兩條線附近標一橫一豎什麼意思 4 是什麼意思 如圖 全部是幾何關係 一橫一豎各自代表水平對齊和豎直對齊,4代表上面的兩條斜線是相等的 cad中這個標誌是什麼意...

excel多出來兩條線怎麼刪除,excel多出來兩條線怎麼刪除

選擇最後一行,然後取消所有邊框線,再選擇本行你要的所有單元格,設定邊框線即可。還有一種辦法,全選整個 取消所有邊框線,然後用ctr a選擇所有已編輯區域 放心,系統預設如此,第一次選擇所有已編輯含資料區域,第二次是選擇整個 再設定邊框線。 選中,然後找邊框和底紋,選沒有邊框的內個 在excel中怎麼...