oracle 乙個表多條重覆記錄只取一條的解決方法

2021-09-27 01:37:25 字數 370 閱讀 4260

1.單錶查詢,多條重覆記錄只取一條

select * from 

select  row_number() over(partition by  重複字段 order by 時間字段   倒序還是順序) a1, a2.欄位1,a2.欄位2    from 表  a2

where 1=1 

查詢條件

)where a1 = 1

2.總結關鍵是表的去重,只取第一條語句:

(select * from (select rank() over(partition by bzdwcode order by dwcode desc) r,a.* from jl a) where r=1) f

用過第一種,第二種還沒用過

oracle 刪除表中重覆記錄

表demo是重複拷貝自dba objects,有88萬左右,不重複的是27323,沒有索引 方法一 delete from demo a where a.rowid select max rowid from demo b where b.object id a.object id 耗時 幾個小時以...

Oracle刪除重覆記錄

oracle刪除重覆記錄的最好的方法 delete from emp e where e.rowid select min y.rowid from emp y where y.empno e.empno 1 子查詢找出某員工最低的rowid 肯定只有乙個 其它大於這條記錄rowid的,全部刪除。2...

快速刪除ORACLE重覆記錄

在oracle中,可以通過唯一rowid實現刪除重覆記錄 還可以建臨時表來實現.這個只提到其中的幾種簡單實用的方法,希望可以和大家分享 以表employee為例 sql desc employee name null?type emp id number 10 emp name varchar2 2...