日期:2014-05-16  浏览次数:20471 次

oracle去掉重复行
oracle 删除重复行
有表:  
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);