table t:name 
----
sql_name
sql_name
str_name
str_name要求结果为:
table t:name
----
sql_name
str_name中间不能用到create 其它table等命令。。大侠求救呀

解决方案 »

  1.   

    表t怎么没主键呢?
    这样吧,给你也例子。对你有很多帮助!--查询和删除相同记录的测试
    create table test(id number, name varchar2(20));
    insert into test(id, name) values(1,'10');
    insert into test(id, name) values(1,'10');
    insert into test(id, name) values(2,'20');
    insert into test(id, name) values(2,'30');
    insert into test(id, name) values(3,'40');
    insert into test(id, name) values(3,'40');
    commit;
    select * from test;--查询相同记录
    select id,name from(select id,name,count(*) from test group by id,name having count(*)>1);
    select id,name from test a where rowid > (select min(rowid) from test b where a.id = b.id and a.name = b.name);
    select id,name from test a where rowid <> (select max(rowid) from test b where a.id = b.id and a.name = b.name);--查询不同记录
    1.select * from test t where t.rowid <= (select min(x.rowid) from test x where t.id = x.id and t.name = x.name);
    2.select distinct t.* from test t;删除重复记录
    1.delete from test t where t.rowid > (select min(x.rowid) from test x where t.id = x.id and t.name = x.name);
    2.delete from test t where t.rowid <> (select min(x.rowid) from test x where t.id = x.id and t.name = x.name);
    3.delete from test 
            where rowid in(select rd 
                           from(select rowid rd,row_number()over(partition by id,name order by 1 )rn 
                                  from test
                               ) 
                         where rn <>1
                         );
      

  2.   

    如果没有主键的话,就这样删除重复数据。--删除重复记录的3种方法
    1.delete from  t where t.rowid > (select min(x.rowid) from t x where  t.name = x.name);
    2.delete from  t where t.rowid <> (select min(x.rowid) from t x where t.name = x.name);
    3.delete from  t  
       where rowid in(select rd 
                           from(select rowid rd,row_number()over(partition by name order by 1 )rn 
                                  from t
                               ) 
                         where rn <>1
                         );
      

  3.   

    可是只有一列呢?name的呀