91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

oracle中如何刪除重數據

發布時間:2021-07-27 15:41:09 來源:億速云 閱讀:153 作者:Leah 欄目:關系型數據庫

今天就跟大家聊聊有關oracle中如何刪除重數據,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

前期準備

創建測試表

create table salary( 

  staffid   int, 

  staff   varchar(15)  

);

模擬重復數據

insert into salary values(1,'a');

insert into salary values(2,'s');

insert into salary values(3,'ert');

insert into salary values(4,'d');

insert into salary values(5,'b');

insert into salary values(1,'a');

insert into salary values(2,'s');

insert into salary values(3,'ert');

insert into salary values(4,'d');

insert into salary values(5,'b');

insert into salary values(1,'a');

insert into salary values(2,'s');

insert into salary values(3,'ert');

insert into salary values(4,'d');

insert into salary values(5,'b');

insert into salary values(10,'aaaa');

insert into salary values(20,'sass');

insert into salary values(30,'erwt');

insert into salary values(40,'dsd');

insert into salary values(50,'bsdf');

insert into salary values(1,'oookkk');

實驗一:模擬單個字段數據重復

select * from salary;

STAFFID STAFF

--------------- ---------------

              1 oookkk

              1 a

              2 s

              3 ert

              4 d

              5 b

              1 a

              2 s

              3 ert

              4 d

              5 b

              1 a

              2 s

              3 ert

              4 d

              5 b

             10 aaaa

             20 sass

             30 erwt

             40 dsd

             50 bsdf

21 rows selected

1.查出重復數據

方法一

SELECT *

FROM salary a

WHERE ((SELECT COUNT(*)

          FROM salary

          WHERE staffid = a.staffid) > 1)

ORDER BY staffid 

方法二

select *

  from salary

 where staffid in

(select staffid from salary group by staffid having count(staffid) > 1)

刪除重復數據,只保留1條,其余全部刪除

方法一,通過rowid刪除

delete from salary

where staffid in (select staffid from salary group by staffid  having count(staffid) > 1)

and rowid not in (select min(rowid) from salary group by staffid having count(staffid )>1)

實驗二:模擬兩個個字段數據重復

1.查詢重復記錄

方法一

select * from salary a

where (a.staffid,a.staff) in (select staffid,staff from salary group by staffid,staff having count(*) > 1)

方法二

SELECT *

FROM salary a

WHERE ((SELECT COUNT(*)

          FROM salary

          WHERE staffid = a.staffid and staff=a.staff) > 1)

ORDER BY staffid 

結果,共15條

STAFFIDSTAFF

1      a

1      a

1      a

2      s

2      s

2      s

3      ert

3      ert

3      ert

4      d

4      d

4      d

5      b

5      b

5      b

2.刪除重復數據,只保留1條,其余全部刪除

delete from vitae a

where (a.peopleId,a.seq) in   (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)

and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)

3.查看刪除后結果

select * from salary;

結果

STAFFIDSTAFF

1      oookkk

1      a

2      s

3      ert

4      d

5      b

10    aaaa

20    sass

30    erwt

40    dsd

50    bsdf

看完上述內容,你們對oracle中如何刪除重數據有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

龙江县| 荆门市| 仙居县| 白城市| 武穴市| 霍城县| 武陟县| 翼城县| 衡阳县| 道真| 岱山县| 永登县| 洞口县| 弥勒县| 阜宁县| 稻城县| 定结县| 会理县| 平果县| 宜兴市| 滕州市| 全南县| 洛阳市| 临汾市| 承德县| 兴海县| 锦屏县| 浦城县| 正蓝旗| 萨迦县| 郎溪县| 唐海县| 贵德县| 吉林省| 安顺市| 五河县| 江北区| 出国| 明溪县| 华池县| 专栏|