Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Spalte mit Werten aus einer anderen Spalte aktualisieren

Es gibt zwei mögliche Gründe für den Versuch, foo.a auf NULL zu aktualisieren.

  1. Es gibt Zeilen in foo, für die es keine passenden Zeilen in bar gibt.
  2. Die übereinstimmende Zeile in bar hat bar.x von null.

Im Folgenden werden Aktualisierungen von foo ausgeschlossen, wenn eine der oben genannten Bedingungen zutrifft. In diesen Fällen bleibt foo.a wie es war:

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