oracle刪除重複行的方法

2021-04-25 18:51:08 字數 965 閱讀 1058

刪除重複行有兩種方法:

資料準備

建表語句

create table a(a varchar2(10),b varchar2(20));

插入資料

insert into a values('11','22');

insert into a values('11','22');

insert into a values('11','22');

insert into a values('aa','bb');

insert into a values('aa','bb');

insert into a values('cc','dd');

commit;

轉殖一張表

create table test  as (select * from a);

查詢(1)select * from test

1 11 22

2 11 22

3 11 22

4 aa bb

5 aa bb

6 cc dd

(2)select distinct * from test;

1 11 22

2 cc dd

3 aa bb

1)利用中間表法:create table test_copy as (select distinct * from test);

然後刪除原表 drop table test;

create table test as (select  * from test_copy);

然後就完成了。

2)利用rowid法

sql語句如下:

delete from test t where rowid not in(

select max(rowid) from test p  where t.a=p.a and t.b=p.b);

commit;

oracle刪除重複行

oracle刪除重複行,一定是設定主鍵才能用 delete from sys role function a where exists select from sys role function where srfu id oracle刪除重複行,可以不用主鍵,推薦使用 delete from sy...

刪除多餘 重複的行 oracle

有些表在設計時沒有加約束條件,雖然有序列號,但是內容有很多重複的資料,比如 id 姓 名 1.朱 亮 2.朱 亮 3.王 小丫 4.張 三 declare p exists number 0 begin select count into p exists from user tables wher...

Linux刪除重複行

文字處理時,經常要刪除重複行,下面是三種方法 第一,用sort uniq,注意,單純uniq是不行的。sort n test.txt uniq 第二,用sort awk命令,注意,單純awk同樣不行,原因同上。sort n file awk 第三,用sort sed命令,同樣需要sort命令先排序。...