select name,decode(rk,1,1,0) flag
from (
select name,rank() over(order by name) from tbname
) t;

解决方案 »

  1.   

    select name,decode(rk,1,1,0) flag
    from (
    select name,rank() over(order by name) rk from tbname
    ) t;
      

  2.   

    select distinct t.* from table t 
      where t.flag = 1
      

  3.   

    谢谢各位了
    可能是我的描述不清楚,我是想更新表,而不是查询
    我想应该是用update来写的
    麻烦各位再出出主意。
      

  4.   

    update tb set flag=(select nvl(max(1),0) from (select min(rowid) rid from tb
    group by name) t
    where t.rid=tb.rowid);
      

  5.   

    update table_name a set flag = decode(rowid = (select max(rowid) from table_name b where a.name = b.name group by name),1,0)
      

  6.   

    我还想问一下,update语句中还包括有select语句,执行时间会不会很长呢
    (问题比较菜,请高手不要见笑)