电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

Oracle中實(shí)現(xiàn)刪除重復(fù)數(shù)據(jù)只保留一條

瀏覽:130日期:2023-03-12 15:25:29
目錄
  • Oracle刪除重復(fù)數(shù)據(jù)只保留一條
  • Oracle刪除重復(fù)記錄,保留一條,沒有主鍵的情況
  • 總結(jié)

Oracle刪除重復(fù)數(shù)據(jù)只保留一條

查詢及刪除重復(fù)記錄的SQL語句

1、查找表中多余的重復(fù)記錄,重復(fù)記錄是根據(jù)單個(gè)字段(Id)來判斷

select * from 表 where Id in (select Id from 表 group byId having count(Id) > 1)

2、刪除表中多余的重復(fù)記錄,重復(fù)記錄是根據(jù)單個(gè)字段(Id)來判斷,只留有rowid最小的記錄

DELETE from 表 WHERE (id) IN ( SELECT id FROM 表 GROUP BY id HAVING COUNT(id) > 1)?
AND ROWID NOT IN (SELECT MIN(ROWID) FROM 表 GROUP BY id HAVING COUNT(*) > 1);

3、查找表中多余的重復(fù)記錄(多個(gè)字段)

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

4、刪除表中多余的重復(fù)記錄(多個(gè)字段),只留有rowid最小的記錄

delete from 表 a where (a.Id,a.seq) in (select Id,seq from 表 group by Id,seq having count(*) > 1)
and rowid not in (select min(rowid) from 表 group by Id,seq having count(*)>1)

5、查找表中多余的重復(fù)記錄(多個(gè)字段),不包含rowid最小的記錄

select * from 表 a where (a.Id,a.seq) in (select Id,seq from 表 group by Id,seq having count(*) > 1)?
and rowid not in (select min(rowid) from 表 group by Id,seq having count(*)>1)

Oracle刪除重復(fù)記錄,保留一條,沒有主鍵的情況

想偷懶,網(wǎng)上搜一個(gè),結(jié)果沒有找到合適的,自己寫個(gè)吧。

有主鍵的比較簡(jiǎn)單,網(wǎng)上也很多。

--id為主鍵 a是有重復(fù)值的字段
begin
? for v in (select a, min(id) id, count(*)
? ? ? ? ? ? ? from temp_a
? ? ? ? ? ? ?group by a
? ? ? ? ? ? having count(*) > 1) loop
? ? delete from temp_a t
? ? ?where t.a = v.a
? ? ? ?and t.id <> v.id;
? ? commit;
? end loop;
end;

沒有主鍵的話,可以用的通過rowid可以實(shí)現(xiàn)。這個(gè)網(wǎng)上也很多。思路與主鍵id一樣

--a是有重復(fù)值的字段
begin
? for v in (select a, min(rowid) id, count(*)
? ? ? ? ? ? ? from temp_a
? ? ? ? ? ? ?group by a
? ? ? ? ? ? having count(*) > 1) loop
? ? delete from temp_a t
? ? ?where t.a = v.a
? ? ? ?and t.rowid <> v.id;
? ? commit;
? end loop;
end;

剛開始是想通過rownum實(shí)現(xiàn)的,發(fā)現(xiàn)會(huì)有問題,比如:

--a是有重復(fù)值的字段,這個(gè)sql不會(huì)刪除任何數(shù)據(jù)
begin
? for v in (select a, count(*) from temp_a group by a having count(*) > 1) loop
? ? delete from temp_a t
? ? ?where t.a = v.a
? ? ? ?and rownum <> 1;
? ? commit;
? end loop;
end;

這個(gè)是刪不了數(shù)據(jù)的,因?yàn)閞ownum總是從1開始的。第一行不符合的話,第二行的rownum又會(huì)成為1。在temp_a表有數(shù)據(jù)的情況下,下邊這個(gè)sql查不到任何數(shù)據(jù),改成>10也是一樣的。而<10可以查到前9條數(shù)據(jù)。

select * from temp_a where rownum>1;

如果一定想用rownum的話,還有一種做法,就是增加臨時(shí)列,值等于rownum,這樣就相當(dāng)于有了主鍵了。

--新增v_id=rownum作為臨時(shí)主鍵 a是有重復(fù)值的字段
alter table temp_a add v_id number(10);
update temp_a t set t.v_id = rownum;
commit;
begin
? for v in (select a, min(v_id) v_id, count(*)
? ? ? ? ? ? ? from temp_a
? ? ? ? ? ? ?group by a
? ? ? ? ? ? having count(*) > 1) loop
? ? delete from temp_a t
? ? ?where t.a = v.a
? ? ? ?and t.v_id <> v.v_id;
? ? commit;
? end loop;
end;
alter table temp_a drop column v_id;

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持。

標(biāo)簽: Oracle
相關(guān)文章:
主站蜘蛛池模板: 蓄电池回收,ups电池后备电源回收,铅酸蓄电池回收,机房电源回收-广州益夫铅酸电池回收公司 | 密封无忧网 _ 专业的密封产品行业信息网 | 银川美容培训-美睫美甲培训-彩妆纹绣培训-新娘化妆-学化妆-宁夏倍莱妮职业技能培训学校有限公司 临时厕所租赁_玻璃钢厕所租赁_蹲式|坐式厕所出租-北京慧海通 | 伺服电机_直流伺服_交流伺服_DD马达_拓达官方网站 | 耐高温硅酸铝板-硅酸铝棉保温施工|亿欧建设工程 | 废气处理设备-工业除尘器-RTO-RCO-蓄热式焚烧炉厂家-江苏天达环保设备有限公司 | 企典软件一站式企业管理平台,可私有、本地化部署!在线CRM客户关系管理系统|移动办公OA管理系统|HR人事管理系统|人力 | 电动百叶窗,开窗器,电动遮阳百叶,电动开窗机生产厂家-徐州鑫友工控科技发展有限公司 | 山东PE给水管厂家,山东双壁波纹管,山东钢带增强波纹管,山东PE穿线管,山东PE农田灌溉管,山东MPP电力保护套管-山东德诺塑业有限公司 | 澳门精准正版免费大全,2025新澳门全年免费,新澳天天开奖免费资料大全最新,新澳2025今晚开奖资料,新澳马今天最快最新图库 | 小型气象站_便携式自动气象站_校园气象站-竞道气象设备网 | 蜘蛛车-高空作业平台-升降机-高空作业车租赁-臂式伸缩臂叉装车-登高车出租厂家 - 普雷斯特机械设备(北京)有限公司 | 创客匠人-让IP变现不走弯路| 金联宇电缆|广东金联宇电缆厂家_广东金联宇电缆实业有限公司 | 日本细胞免疫疗法_肿瘤免疫治疗_NK细胞疗法 - 免疫密码 | 整合营销推广|营销网络推广公司|石家庄网站优化推广公司|智营销 好物生环保网、环保论坛 - 环保人的学习交流平台 | 合肥触摸一体机_触摸查询机厂家_合肥拼接屏-安徽迅博智能科技 | 【中联邦】增稠剂_增稠粉_水性增稠剂_涂料增稠剂_工业增稠剂生产厂家 | 小区健身器材_户外健身器材_室外健身器材_公园健身路径-沧州浩然体育器材有限公司 | 超声骨密度仪,双能X射线骨密度仪【起草单位】,骨密度检测仪厂家 - 品源医疗(江苏)有限公司 | 江苏全风,高压风机,全风环保风机,全风环形高压风机,防爆高压风机厂家-江苏全风环保科技有限公司(官网) | 钢格栅板_钢格板网_格栅板-做专业的热镀锌钢格栅板厂家-安平县迎瑞丝网制造有限公司 | 超声波反应釜【百科】-以马内利仪器 | 焊锡丝|焊锡条|无铅锡条|无铅锡丝|无铅焊锡线|低温锡膏-深圳市川崎锡业科技有限公司 | 防伪溯源|防窜货|微信二维码营销|兆信_行业内领先的防伪防窜货数字化营销解决方案供应商 | 东风体检车厂家_公共卫生体检车_医院体检车_移动体检车-锦沅科贸 | 达利园物流科技集团- | 工控机-图像采集卡-PoE网卡-人工智能-工业主板-深圳朗锐智科 | 全自动实验室洗瓶机,移液管|培养皿|进样瓶清洗机,清洗剂-广州摩特伟希尔机械设备有限责任公司 | 【ph计】|在线ph计|工业ph计|ph计厂家|ph计价格|酸度计生产厂家_武汉吉尔德科技有限公司 | 硅PU球场、篮球场地面施工「水性、环保、弹性」硅PU材料生产厂家-广东中星体育公司 | 台湾Apex减速机_APEX行星减速机_台湾精锐减速机厂家代理【现货】-杭州摩森机电 | 冷水机,风冷冷水机,水冷冷水机,螺杆冷水机专业制造商-上海祝松机械有限公司 | 北京网站建设公司_北京网站制作公司_北京网站设计公司-北京爱品特网站建站公司 | 耐高温硅酸铝板-硅酸铝棉保温施工|亿欧建设工程 | 钢木实验台-全钢实验台-化验室通风柜-实验室装修厂家-杭州博扬实验设备 | 钢衬四氟管道_钢衬四氟直管_聚四氟乙烯衬里管件_聚四氟乙烯衬里管道-沧州汇霖管道科技有限公司 | 暖气片十大品牌厂家_铜铝复合暖气片厂家_暖气片什么牌子好_欣鑫达散热器 | 专业生产动态配料系统_饲料配料系统_化肥配料系统等配料系统-郑州鑫晟重工机械有限公司 | SRRC认证|CCC认证|CTA申请_IMEI|MAC地址注册-英利检测 | 过滤器_自清洗过滤器_气体过滤器_苏州华凯过滤技术有限公司 |