oracle没有这样的update语句。
update ta set column1=(select max(tb.column1) from ta,tb where ta.id=tb.id)
where exist(select 1 from ta,tb where ta.id=tb.id)

解决方案 »

  1.   

    楼上我把这样写了,但不对的,执行完后所有的ta.column1里的的值全部变为同一个数,
    max去掉后提示子查询返回行数多于一行我只想把两个表里满足条件(tb表赋值给ta),有没有解决方法,为什么没有像在sqlserver里那样简单执行一下update ta set column1=tb.column1 from ta,tb where ta.id=tb.id;就ok了?
      

  2.   

    update ta set column1=nvl((select column1 from tb where ta.id=tb.id),ta.name);
      

  3.   

    update ta set column1=nvl((select column1 from tb where ta.id=tb.id),ta.column1);
      

  4.   

    update ta set column1=(select max(tb.column1) from tb where ta.id=tb.id)
    where exists(select 1 from tb where ta.id=tb.id)
      

  5.   

    楼上的update ta set column1=(select max(tb.column1) from tb where ta.id=tb.id)
    where exists(select 1 from tb where ta.id=tb.id)
    为什么我像这样执行,出现ta里column1这一列的值全部都为同一个值,不行,还没解决,郁闷,在sqlserver很好解决,为什么在oracle里解决不了
      

  6.   

    update ta set column1=nvl((select column1 from tb where ta.id=tb.id),0);
    好像可以r 的
      

  7.   

    update ta set column1=nvl((select column1 from tb where ta.id=tb.id),0);
      

  8.   

    update ta set column1=(select column1 from tb where ta.id=tb.id);
      

  9.   

    UPDATE TABLE SET COL=()
      

  10.   

    update ta set column1=(select max(tb.column1) from ta,tb where ta.id=tb.id)
    where exist(select 1 from ta,tb where ta.id=tb.id)
      

  11.   

    --试试
    update ta set ta.column1=tb.column1
    where exist(select 1 from tb where ta.id=tb.id);
      

  12.   

    --试试
    update ta set ta.column1=tb.column1
    where exist(select 1 from tb where ta.id=tb.id);
      

  13.   

    update ta set ta.column1=(select tb.column1 from tb where ta.id=tb.id and rownum<2);