错了,上面的帖子里面的update语句应该为:
update t1 x 
set x.clst3 = (
     select y.clst2 from t2 y
     where x.clst1 = y.clst1
     )
where x.clst1 in (select clst1 from t2);

解决方案 »

  1.   

    根本就不能更新,select y.clst2 from t2 y where x.clst1 = y.clst1已有超一条以上记录。只能选其中一个字段:你的意思是否想把两个相符条件的clst2合并吧,那只能用函数实现了
      

  2.   

    bechham.是啊,就是想把两个符合条件的clst2合并然后update到T1里面.
    只能用procedure嘛?
      

  3.   

    http://expert.csdn.net/Expert/topic/1222/1222441.xml?temp=.4388544可能是你所找的函数,不竟有错误码,自已回去试多几次吧
      

  4.   

    写一个存储过程吧,ORACLE里没有象SQLSERVER中关联更新的语句。
      

  5.   

    update t1 x 
    set x.clst3 = (
         select y.clst2 from t2 y
         where x.clst2 = y.clst2 and rownum = 1
         )
    where x.clst1 in (select clst1 from t2);如果符合条件的为多条记录,你说选择那条呢?这些记录都是一样的值的话,就可以这么做
      

  6.   

    当然有兴趣可以看看这个http://www.itpub.net/showthread.php?s=&threadid=45822