亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > Oracle > 正文

Oracle刪除重復行傳智播客

2024-08-29 13:53:37
字體:
來源:轉載
供稿:網友
 查詢及刪除重復記錄的SQL語句
1、查找表中多余的重復記錄,重復記錄是根據單個字段(peopleId)來判斷
select * from people
where peopleId in (select   peopleId from   people group by   peopleId having count(peopleId) > 1)
2、刪除表中多余的重復記錄,重復記錄是根據單個字段(peopleId)來判斷,只留有rowid最小的記錄
delete from people
where peopleId in (select   peopleId from people group by   peopleId   having count(peopleId) > 1)
and rowid not in (select min(rowid) from   people group by peopleId having count(peopleId )>1)

注:rowid為Oracle自帶不用該.....

3、查找表中多余的重復記錄(多個字段)
select * from vitae a
where (a.peopleId,a.seq) in   (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)
4、刪除表中多余的重復記錄(多個字段),只留有rowid最小的記錄
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)

5、查找表中多余的重復記錄(多個字段),不包含rowid最小的記錄
select * 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)
(二)
比方說在A表中存在一個字段“name”,而且不同記錄之間的“name”值有可能會相同,
現在就是需要查詢出在該表中的各記錄之間,“name”值存在重復的項;
Select Name,Count(*) From A Group By Name Having Count(*) > 1
如果還查性別也相同大則如下:
Select Name,sex,Count(*) From A Group By Name,sex Having Count(*) > 1

(三)
方法一
declare @max integer,@id integer
declare cur_rows cursor local for select 主字段,count(*) from 表名 group by 主字段 having count(*) >; 1
open cur_rows
fetch cur_rows into @id,@max
while @@fetch_status=0
begin
select @max = @max -1
set rowcount @max
delete from 表名 where 主字段 = @id
fetch cur_rows into @id,@max
end
close cur_rows
set rowcount 0
方法二
"重復記錄"有兩個意義上的重復記錄,一是完全重復的記錄,也即所有字段均重復的記錄,二是部分關鍵字段重復的記錄,比如Name字段重復,而其他字段不一定重復或都重復可以忽略。
1、對于第一種重復,比較容易解決,使用
select distinct * from tableName
就可以得到無重復記錄的結果集?! ∪绻摫硇枰獎h除重復的記錄(重復記錄保留1條),可以按以下方法刪除
select distinct * into #Tmp from tableName
drop table tableName
select * into tableName from #Tmp
drop table #Tmp
發生這種重復的原因是表設計不周產生的,增加唯一索引列即可解決。
2、這類重復問題通常要求保留重復記錄中的第一條記錄,操作方法如下
假設有重復的字段為Name,Address,要求得到這兩個字段唯一的結果集
select identity(int,1,1) as autoID, * into #Tmp from tableName
select min(autoID) as autoID into #Tmp2 from #Tmp group by Name,autoID
select * from #Tmp where autoID in(select autoID from #tmp2)
最后一個select即得到了Name,Address不重復的結果集(但多了一個autoID字段,實際寫時可以寫在select子句中省去此列)
(四)
查詢重復
select * from tablename where id in (
select id from tablename
group by id
having count(id) > 1)
=======================================
1。用rowid方法

據據Oracle帶的rowid屬性,進行判定,是否存在重復,語句如下:
查數據:
select * from table1 a where rowid !=(select  max(rowid)
from table1 b where a.name1=b.name1 and a.name2=b.name2......)
刪數據:
delete  from table1 a where rowid !=(select  max(rowid)
from table1 b where a.name1=b.name1 and a.name2=b.name2......)

2.group by方法

查數據:
select count(num), max(name) from student --列出重復的記錄數,并列出他的name屬性
group by num
having count(num) >1 --按num分組后找出表中num列重復,即出現次數大于一次
刪數據:
delete from student
group by num
having count(num) >1
這樣的話就把所有重復的都刪除了。

3.用distinct方法 -對于小的表比較有用

create table table_new as  select distinct *  from table1 minux
truncate table table1;
insert into table1 select * from table_new;
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久香蕉精品香蕉| 欧美wwwwww| 国产91在线播放九色快色| 国产一区二区三区在线播放免费观看| 亚洲一区二区三区四区在线播放| 国产午夜精品全部视频在线播放| 日产精品久久久一区二区福利| 欧美综合国产精品久久丁香| 国产精品中文字幕在线| 日韩av一区二区在线观看| 中文字幕免费精品一区高清| 91在线高清免费观看| 在线日韩av观看| 欧美大奶子在线| 久久电影一区二区| 亚洲欧美日韩精品久久奇米色影视| 欧美成人合集magnet| 亚洲男人的天堂在线| 欧美丰满少妇xxxx| 日本久久中文字幕| 91tv亚洲精品香蕉国产一区7ujn| 青青青国产精品一区二区| 国产精品免费视频久久久| 久久九九精品99国产精品| 久久精品国产视频| 91国产精品91| 97av在线视频免费播放| 永久免费看mv网站入口亚洲| 亚洲人a成www在线影院| 国产一区二区三区欧美| 国产日韩中文字幕在线| 亚洲r级在线观看| 国产精品香蕉在线观看| 久久久久久97| 色99之美女主播在线视频| 最近2019年手机中文字幕| 欧美日韩电影在线观看| 一区二区三区国产在线观看| 91国内产香蕉| 国产综合在线观看视频| 久久久噜噜噜久噜久久| 欧美日韩亚洲精品内裤| 国产精品入口福利| 欧美壮男野外gaytube| 久久国产精品视频| 日韩电影免费在线观看| 亚洲精品456在线播放狼人| 欧美乱妇高清无乱码| 亚洲黄色成人网| 久久精品成人一区二区三区| 亚洲精品视频免费在线观看| 国产精品18久久久久久麻辣| 亚洲最大中文字幕| 自拍偷拍免费精品| 久久琪琪电影院| 国产精品丝袜一区二区三区| 国产精品一区二区久久久| 91精品国产91久久久久久最新| 在线播放精品一区二区三区| 久久久久一本一区二区青青蜜月| 综合136福利视频在线| www.99久久热国产日韩欧美.com| 欧美麻豆久久久久久中文| 美女久久久久久久| 色樱桃影院亚洲精品影院| 综合av色偷偷网| 992tv成人免费影院| 久久久精品999| 欧美怡红院视频一区二区三区| 亚洲精品98久久久久久中文字幕| 一区二区三区黄色| 欧美精品免费在线观看| 精品国产依人香蕉在线精品| 国内精品一区二区三区四区| 久久亚洲精品一区| 国内精品中文字幕| 国产69久久精品成人看| 欧美一级免费视频| 亚洲电影免费观看高清完整版| 中文字幕久久亚洲| 久久亚洲精品中文字幕冲田杏梨| 日本成人免费在线| 日韩国产在线看| 亚洲伊人久久综合| 亚洲精品一区在线观看香蕉| 久久精品国产电影| 亚洲国产精品电影| 日韩av一区二区在线| 欧美视频在线视频| 欧美性生交xxxxx久久久| 久久精品国产亚洲一区二区| 国产在线精品自拍| 亚洲福利视频久久| 亚洲欧洲国产精品| 欧美激情网友自拍| 欧美日韩国产专区| 国产精品电影久久久久电影网| 久久成年人视频| 97国产一区二区精品久久呦| 亚洲欧美中文字幕在线一区| 国产成人综合久久| 亚洲老板91色精品久久| 尤物99国产成人精品视频| 亚洲精品一区中文字幕乱码| 国产一区二区三区四区福利| 国产精品扒开腿做爽爽爽的视频| 亚洲欧美日韩一区二区在线| 国产欧美 在线欧美| 高清日韩电视剧大全免费播放在线观看| 欧美国产日韩一区二区| 中文字幕日韩精品在线观看| 精品视频—区二区三区免费| 91高潮在线观看| 成人亚洲欧美一区二区三区| 国产精品美女午夜av| 欧美午夜宅男影院在线观看| 欧美激情女人20p| 91久久久在线| 午夜精品99久久免费| 国内精品久久久久| 亚洲国产古装精品网站| 欧美高清视频在线观看| 久久久天堂国产精品女人| 亚洲精品国产精品自产a区红杏吧| 欧美午夜激情在线| 国产精品白丝jk喷水视频一区| 欧洲日本亚洲国产区| 国产精品成人v| 国产在线精品一区免费香蕉| 色狠狠av一区二区三区香蕉蜜桃| 国产成人亚洲精品| 国产精品自拍视频| 亚洲天堂av在线播放| 91亚洲va在线va天堂va国| 欧美精品久久久久久久久久| 色噜噜久久综合伊人一本| 狠狠做深爱婷婷久久综合一区| 亚洲国产精品国自产拍av秋霞| www.日韩视频| 亚洲精品黄网在线观看| 国产成人高清激情视频在线观看| 欧美又大又粗又长| 亚洲天堂av女优| 久久伊人色综合| 91欧美视频网站| 日本aⅴ大伊香蕉精品视频| 日韩精品在线免费观看视频| 久久精品福利视频| 久久精品国产99国产精品澳门| 欧洲s码亚洲m码精品一区| 自拍偷拍亚洲一区| 欧美有码在线观看视频| 日韩成人小视频| 欧美日韩亚洲一区二| 日韩一区av在线| 国产成人精品免费久久久久| 亚洲第一区中文字幕| 亚洲人成在线免费观看| 中文字幕精品—区二区| 国产精品最新在线观看| www.日韩欧美| 日韩黄在线观看| 亚洲综合小说区| 久久久精品国产网站|