求SQL语句
有个头疼的事情   
 比如 
 A表中有   a,b,c.....N个字段 
 A.c的状态为(0,或1) 
 A.a=X(任意数值时)   
 A.b可以有很多不同数值      c是标志b是否有效   
 现在的问题是   当A.a一定时         相同的b   有效记录却有两条   
 请问如何把有效的两条中的一条c置为0(失效)   
 要批量处理整个表中的数据   
 谢谢 
------解决方案--------------------max(rowid)
------解决方案--------------------update 
 ( 
   select 
   a,b,c 
   from 
   A 
   where 
    c= 1 
   group by 
    a,b 
  having count(*) >  1 
 ) 
 set 
 c=0
------解决方案--------------------update a  
 set c = 0 
 where rowid in 
 ( 
 select max(rowid) from a  
 group by a.a,a.b 
 having count(*) >  1 
 )
------解决方案--------------------update a  
 set c = 0 
 where c=1 and rowid in 
 ( 
 select max(rowid) from a where a.c=1 
 group by a.a,a.b 
 having count(*) >  1 
 )
------解决方案--------------------本人剛學Oracle 
 請問 
  tianyacao007(天涯草-请别在触碰我荒凉心中还在痛的角落) ( ) 信誉:100    Blog  2007-1-25 14:43:20  得分: 0        
 update 
 ( 
   select 
   a,b,c 
   from 
   A 
   where 
    c= 1 
   group by 
    a,b 
  having count(*) >  1 
 ) 
 set 
 c=0   
 的這種寫法是否能執行   
------解决方案--------------------no!
------解决方案--------------------删除重复记录    
 最高效的删除重复记录方法 ( 因为使用了ROWID)      
 DELETE FROM a E    
 WHERE E.ROWID >  (SELECT MIN(X.ROWID)    
 FROM a X    
 WHERE X.b = E.b);  
------解决方案--------------------或者 更新记录   
 UPDATE a E SET c=0   
 WHERE E.ROWID >  (SELECT MIN(X.ROWID)    
 FROM a X    
 WHERE X.b = E.b);
------解决方案--------------------呵呵 何必搞得那么复杂,楼上的那个不错,我也写了个语句: 
 update  
   A A1  
 set  
   c=0  
 where  
   A1.rowid> (select min(A2.rowid) from A A2 where A1.a=A2.a and A1.b=A2.b);