Oracle表中重复数据去重的方法实例详解

我们来到郊外。啊,这是多美的 "绿毯 "呀!绿油油的,上面还挂着一颗颗晶莹的 "珍珠 ",太阳升起来, "珍珠 "就发出了彩虹似的光芒,不一会儿就消失了。我想:小 "珍珠 "一定是架起彩虹桥去太阳神的皇宫了。这时,一股股幽香扑入我的鼻中,好香啊,走,去瞧瞧。我们先来到一株红梅前,那梅花正开得灿烂,并且还散出阵阵清香。梅花的颜色也许只有九天的织女用早晨的红霞和晴午的白云在天机上织的轻绢,才可以比拟吧。我们又来到迎春花旁,迎春花正在开花。

Oracle表中重复数据去重的方法实例详解

我们在项目中肯定会遇到一种情况,就是表中没有主键 有重复数据 或者有主键 但是部分字段有重复数据 而我们需要过滤掉重复数据

下面是一种解决方法

delete from mytest ms 
 where rowid in (select aa.rid 
          from (select rowid as rid, 
                row_number() over(partition by s.name order by s.id) as nu 
              from mytest s) aa 
         where aa.nu > 1) 

row_number() over是分析函数 可以获得当前分组的出现次数 如果有重复的就会累加 2,3,4。。。这种,我们删除掉大于1的即可 删除通过rowid来删除

以上就是关于Oracle 去重的方法及简单实例的介绍,关于数据库的文章本站还有很多,欢迎大家搜索参阅,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

您可能有感兴趣的文章
Oracle缩表空间的完整如何解决实例

详解Oracle控制文件及日志文件的管理问题

oracle指定类型和指定位数创建序列号的代码详解

Oracle官方工具SQLDeveloper的简单如何使用

Oracle中锁(lock)的用法