Oracle数据表如何只保留一条重复数据,删除其他重复数据

1 使用rowid

使用rowid,rowid是Oracle中每一行的唯一标识符,可以使用以下语句来删除重复数据,保留一条:

delete from your_table
 where rowid not in
       (select min(rowid) from your_table group by duplicate_columns);

--其中,your_table是表名,duplicate_columns是用于判断重复数据的列。

2 使用row_number()函数

使用row_number()函数,row_number()函数可以为每一行分配一个唯一的序号,可以使用以下语句来删除重复数据,保留一条:

delete from your_table
 where rowid in (select rid
                   from (select rowid as rid,
                                row_number() over(partition by duplicate_columns order by rowid) as rn
                           from your_table)
                  where rn > 1);

--其中,your_table是表名,duplicate_columns是用于判断重复数据的列。

:以上方法适用于删除表中的重复数据,保留一条。如果需要保留多条重复数据,可以根据具体需求进行调整。

原文链接:https://blog.csdn.net/qq_24330181/article/details/131590306

 

posted @   DAYTOY-105  阅读(693)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
历史上的今天:
2023-04-15 行政区划代码
2023-04-15 mysql如何查询所有表和字段信息
点击右上角即可分享
微信分享提示