码迷,mamicode.com
首页 > 数据库 > 详细

DB2删除重复数据

时间:2016-05-03 12:32:46      阅读:172      评论:0      收藏:0      [点我收藏+]

标签:

有时候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 (X05000000000000000000816506000000,X06000000000000000000816506000000,X07000000000000000000816506000000) 

第二种删除:(数据量比较大的情况)

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那么麻烦。

DB2删除重复数据

标签:

原文地址:http://www.cnblogs.com/OliverQin/p/5454273.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!