`
penggle
  • 浏览: 57935 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

oracle借助rowid选择或删除重复行

阅读更多
有表:
create table t_test1(
   id        number,
   name      varchar2(50),
   age       number,
   birthday  date
);
1、选择出重复的行
select a.* from t_test1 a
 where rowid <> (select max(rowid)
                   from t_test1 b
                  where a.id = b.id  -- where语句后面的条件是你定义重复的规则
                    and a.name = b.name
                    and a.age = b.age
                    and a.birthday = b.birthday);

2、删除重复的行
delete from t_test1 a
 where rowid <> (select max(rowid)
                   from t_test1 b
                  where a.id = b.id
                    and a.name = b.name
                    and a.age = b.age
                    and a.birthday = b.birthday);
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics