delete from TableName  where aa , bb in
(
   select aa, bb, count(*)  from TableName  group by aa,bb having  count(*)>1
);执行提示ora-00920:无效的关系运算符,说第一行aa与bb之间的逗号无效,请问这个SQL有问题么?谢谢

解决方案 »

  1.   

    delete from TableName  where exists

      select  1 from TableName where aa=aa and bb=bb group by aa,bb having  count(*)>1 
    ); 
      

  2.   

    这句sql本身是要做什么事情呀?sql里面子查询中多了count(*)
    该是
    select aa,bb from ....怎么好像是将表中的记录全部删除掉?aa,bb中任意一列为null的记录除外?
      

  3.   


    试试:
    delete from testa  where (aa , bb) in 

      select aa, bb from testb  group by aa,bb having  count(*)>1 
    ); 
      

  4.   

    delete from TableName  where aa || bb in 

      select aa || bb from TableName group by aa || bb having  count(*)>1 
    ); 可以把aa和bb组合成一个字段。
      

  5.   

    delete from TableName where (aa,bb) in 

      select aa,bb from TableName group by aa,bb having count(*)>1 
    ); 也可以这样加个括号