Oracle去除重復(fù)數(shù)據(jù)
查詢某些字段相同的記錄
如:查詢col1與col2值相同的記錄:
select a.* from table1 a, table1 b where a.id <> b.id and a.col1 = b.col1 and a.col2 = b.col2;
一、用rowid方法:
根據(jù)oracle自帶的rowid屬性進行判斷是否存在重復(fù)記錄。
rowid偽列用于唯一標識物理位置的表行,當用insert插入數(shù)據(jù)時,會自動生成rowid,與數(shù)據(jù)一起存放,形如:AAAL=XAAAEAAAAA。
1、查數(shù)據(jù):
select * from table1 a where rowid!= (select max(rowid) from table1 b where a.col1 = b.col1 and a.col2 = b.col2;
2、刪數(shù)據(jù):
保留rowid最大的記錄:
delete from table1 a where rowid!= (select max(rowid) from table1 b where a.col1 = b.col1 and a.col2 = b.col2;
二、group by 方法:
1、查數(shù)據(jù):
select * from table1 a where (a.col1,a.col2) in (select col1,col2 from table1 group by col1,col2 having count(*)>1)
2、刪數(shù)據(jù):
刪除表中多余的重復(fù)記錄(多個字段),只保留rowid最小的記錄。
delete from table1 a where (a.col1,a.col2) in (select col1,col2 from table1 group by col1,col2 having count(*)>1) and rowid not in (select min(rowid) from table1 group by col1,col2 having count(*)>1)
到此這篇關(guān)于Oracle去除重復(fù)數(shù)據(jù)的文章就介紹到這了。希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Oracle數(shù)據(jù)庫中SQL開窗函數(shù)的使用
這篇文章主要介紹了Oracle數(shù)據(jù)庫中SQL開窗函數(shù)的使用,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07
Oracle在DML語句中使用returing?into子句
這篇文章介紹了Oracle在DML語句中使用returing?into子句的方法,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-05-05
Oracle數(shù)據(jù)庫正則表達式純數(shù)字例子
正則表達式已經(jīng)在很多軟件中得到廣泛的應(yīng)用,包括*nix(Linux, Unix等),HP等操作系統(tǒng),PHP,C#,Java等開發(fā)環(huán)境,這篇文章主要給大家介紹了關(guān)于Oracle數(shù)據(jù)庫正則表達式純數(shù)字的相關(guān)資料,需要的朋友可以參考下2024-08-08
Oracle的RBO和CBO詳細介紹和優(yōu)化模式設(shè)置方法
這篇文章主要介紹了Oracle的RBO和CBO詳細介紹和優(yōu)化模式設(shè)置方法,RBO即基于規(guī)則的優(yōu)化方式(Rule-Based Optimization),CBO即基于代價的優(yōu)化方式(Cost-Based Optimization),需要的朋友可以參考下2014-07-07
詳解PL/SQL Developer連接本地Oracle 11g 64位數(shù)據(jù)庫
本篇文章主要介紹了PL/SQL Developer連接本地Oracle 11g 64位數(shù)據(jù)庫 ,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-04-04
CentOS 6.3下安裝部署Oracle服務(wù)器圖文教程
這篇文章主要介紹了CentOS 6.3下安裝部署Oracle服務(wù)器圖文教程,本文內(nèi)容詳細,步驟清楚,并配有大量圖片說明,需要的朋友可以參考下2014-09-09
oracle數(shù)據(jù)庫中sql%notfound的用法詳解
SQL%NOTFOUND 是一個布爾值。下面通過本文給大家分享oracle數(shù)據(jù)庫中sql%notfound的用法,需要的的朋友參考下吧2017-06-06

