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 @ 2024-04-15 19:21  DAYTOY-105  阅读(62)  评论(0编辑  收藏  举报