ITPub博客

首页 > IT职业 > IT生活 > 非常有效删除重复行

非常有效删除重复行

原创 IT生活 作者:cosio 时间:2008-07-23 22:23:50 0 删除 编辑

EXP:

select line,value,k0 from kk

1 10 A
1 10 A
1 10 A
3 31 B
3 31 B
1 10 A
1 10 A
1 10 A
3 31 B
3 31 B

解决快速的语句:

delete from kk a where a.rowid NOT in(select max(b.rowid) from kk b

where a.line=b.line and a.value=b.value and a.k0=b.k0)

----------------------------------------------------------------

如果表的列数少的,这个语句就好用!

利用分析函数:


delete from kk where rowid in(
select row_id from (
select rowid row_id,row_number() over(partition by line,k0,value order by rowid ) rn from kk
) where rn<>1)

RESULT:

1 1 10 A
2 2 40 B
3 3 31 B
4 1 22 A
5 1 31 B

[@more@]

----------------------------------------------------------------

根据网友的提示改了

那个地方应该为not in

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/101162/viewspace-1007756/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-07-13

  • 博文量
    71
  • 访问量
    976099