sql >> Base de Datos >  >> RDS >> Oracle

Actualizar columna con valores de otra columna

Hay dos razones posibles para que la actualización intente convertir foo.a en NULL.

  1. Existen filas en foo para las que no hay filas coincidentes en bar.
  2. La fila coincidente en bar tiene bar.x de nulo.

Lo siguiente excluirá las actualizaciones de foo si alguna de las condiciones anteriores es verdadera. En esos casos, foo.a permanecerá como estaba:

update foo 
set a = (select distinct( x ) from bar where bar.y = foo.b )
where exists 
  (select *
  from bar 
  where bar.y = foo.b
  and bar.x is not null);