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