欢迎光临Thomas zhang的杂货铺

DB2中删除重复记录的方法

上一篇 / 下一篇  2009-03-02 00:00:00 / 个人分类:解决方案

这个问题捆饶了我好几个小时,一直没找到有效的解决方法,今天碰到高手了,问题终于得到解决.

在DB2中不象Oracle那样可以借助rowid,rownum等伪列来删除重复的记录,也没有有效的方法可以在一个SQL中直接删除记录.但可以借助row_number() over()语法和视图的方式将重复的记录删除.

下面看一个实际的测试DEMO

 

方法一:借助视图来实现

SQL> create table zrp (no int);
DB20000I  SQL命令成功完成。
SQL> insert into zrp values(1);
DB20000I  SQL命令成功完成。
SQL> insert into zrp values(1);
DB20000I  SQL命令成功完成。
SQL> insert into zrp values(2);
DB20000I  SQL命令成功完成。
SQL> insert into zrp values(2);
DB20000I  SQL命令成功完成。
SQL> select * from zrp;

NO
-----------
          1
          1
          2
          2
  4 条记录已选择。

SQL> create view v_zrp as select no,row_number() over(partition by no) as row_seq from zrp;
DB20000I  SQL命令成功完成。
SQL> select * from v_zrp;

NO          ROW_SEQ
----------- --------------------
          1                    1
          1                    2
          2                    1
          2                    2

  4 条记录已选择。

SQL> delete from v_zrp where row_seq=2;
DB20000I  SQL命令成功完成。
SQL> select * from v_zrp;

NO          ROW_SEQ
----------- --------------------
          1                    1
          2                    1

  2 条记录已选择。

SQL> select * from zrp;

NO
-----------
          1
          2

  2 条记录已选择。

SQL>
方法二:借助row_number() 函数来实现
D:DB2BIN>db2 -td;

SQL> select * from zrp;

NO
-----------
          1
          1
          2
          2

  4 条记录已选择。

SQL> delete from (select no,row_number() over(partition by no) as row_seq from zrp) t where t.row_seq>1;
DB20000I  SQL命令成功完成。
SQL> select * from zrp;

NO
-----------
          1
          2

  2 条记录已选择。

SQL>

e-^I1Vq8K$|*xG A:vz7W&O0

TAG:

引用 删除 yuank1987@163.c   /   2011-12-10 11:46:09
该方法只能适应"唯一键"只有一个字段的情况,如果“唯一键”有两个或者更多字段如何处理呢?
知道解法的请告知我,谢谢
引用 删除 Guest   /   2011-10-08 16:26:21
5
引用 删除 Guest   /   2009-12-14 13:30:13
1
 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2012-02-09  
   1234
567891011
12131415161718
19202122232425
26272829   

我的存档

数据统计

  • 访问量: 28846
  • 日志数: 2017
  • 建立时间: 2008-03-30
  • 更新时间: 2008-03-30

RSS订阅

Open Toolbar