Oracle
 sql >> Base de données >  >> RDS >> Oracle

Mettre à jour la colonne avec les valeurs d'une autre colonne

Il y a deux raisons possibles pour que la mise à jour tente de faire passer foo.a à NULL.

  1. Il existe des lignes dans foo pour lesquelles il n'y a pas de lignes correspondantes dans bar.
  2. La ligne correspondante dans bar a bar.x de null.

Ce qui suit exclura les mises à jour de foo si l'une des conditions ci-dessus est vraie. Dans ces cas, foo.a restera tel quel :

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);