DB2刪除重復數據


有時候DB2建表時不設置主鍵,就可能存在臟數據,例如:兩條一樣數據重復存在,這時候就需要將重復記錄刪除,然后留下一條記錄。

CREATE TABLE TB_01(ID INT ,NAME VARCHAR(100));
----插入重復數據
INSERT INTO TB_01 VALUES(1,'jack');

插入數據后,結果如下圖:

第一種刪除方法:(重復數據較少的情況下)

SELECT ROWID,TB_01.* FROM TB_01

先查詢出rowid,然后以rowid為條件刪除

DELETE FROM TB_01 WHERE ROWID IN (X'05000000000000000000816506000000',X'06000000000000000000816506000000',X'07000000000000000000816506000000') 

第二種刪除:(數據量比較大的情況)

DELETE  FROM (SELECT id,NAME,row_number() over(PARTITION BY ID,NAME ORDER BY ID,NAME) AS row_num FROM TB_01) A
WHERE A.row_num>1

這種刪除方式比較好,沒有使用rowid那么麻煩。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM