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那么麻烦。
作者:奔跑的金鱼
声明:书写博客不易,转载请注明出处,请支持原创,侵权将追究法律责任
个性签名:人的一切的痛苦,本质上都是对自己无能的愤怒
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!