Oracle數(shù)據(jù)表保留一條重復(fù)數(shù)據(jù)簡單方法
要保留表中的一條重復(fù)數(shù)據(jù),可以使用以下方法:
- 使用ROWID:ROWID是Oracle中每一行的唯一標(biāo)識符??梢允褂靡韵抡Z句來刪除重復(fù)數(shù)據(jù),保留一條:
DELETE FROM your_table
WHERE ROWID NOT IN (
SELECT MIN(ROWID)
FROM your_table
GROUP BY duplicate_columns
);
其中,your_table是表名,duplicate_columns是用于判斷重復(fù)數(shù)據(jù)的列。
- 使用ROW_NUMBER()函數(shù):ROW_NUMBER()函數(shù)可以為每一行分配一個唯一的序號??梢允褂靡韵抡Z句來刪除重復(fù)數(shù)據(jù),保留一條:
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是用于判斷重復(fù)數(shù)據(jù)的列。
需要注意的是,在執(zhí)行刪除操作之前,建議先備份數(shù)據(jù),以防誤操作導(dǎo)致數(shù)據(jù)丟失。另外,以上方法適用于刪除表中的重復(fù)數(shù)據(jù),保留一條。如果需要保留多條重復(fù)數(shù)據(jù),可以根據(jù)具體需求進行調(diào)整。
row_number() over()函數(shù)的主要功能是分組排序,實現(xiàn)類似group by + order by的效果
SELECT
FI.*
FROM
( SELECT T.*, ROW_NUMBER ( ) OVER ( PARTITION BY T.u_name ORDER BY T.insert_time DESC ) RW FROM user_test T ) FI
WHERE
FI.RW =1總結(jié)
到此這篇關(guān)于Oracle數(shù)據(jù)表保留一條重復(fù)數(shù)據(jù)的文章就介紹到這了,更多相關(guān)Oracle保留一條重復(fù)數(shù)據(jù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Oracle批量插入數(shù)據(jù)的三種方式【推薦】
本文給大家?guī)砣Noracle批量插入數(shù)據(jù)的方法,每種方法都是通過實例代碼給大家介紹的非常詳細,需要的朋友參考下吧2018-06-06
Windows10安裝Oracle19c數(shù)據(jù)庫詳細記錄(圖文詳解)
這篇文章主要介紹了Windows10安裝Oracle19c數(shù)據(jù)庫詳細記錄,文中給大家介紹了修改密碼的方法,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-05-05
使用Navicat Premium工具將oracle數(shù)據(jù)庫遷移到MySQL
最近的業(yè)務(wù)項目需求,因此總結(jié)遇到的問題。使用Navicat Premium工具將Oralce數(shù)據(jù)庫遷移到MySQL,本文通過圖文的形式給大家詳細介紹,感興趣的朋友跟隨小編一起看看吧2021-05-05

