In einem Update mehrere Felder aus 1 Subselect

Hallo Zusammen!

Ich würde gern, ähnlcih einem Insert, bei einem Update mehere Felder gleichzeitig aktualsieren. Alle Felder ergeben sich aus einem Subselect, den man ohne Probleme so gestalten kann, dass für alle Felder die Ergebnisse aktualisiert werden.

Wie kann man es machen, das nicht
Feld1 = Subselect,
Feld2 = Subselect …

verwendet werden muss, da dadurch ja die Subabrage sinnlos oft verwendet werden muss.

Gibts sowas wie „update (Feld1, Feld2) set (Subselect…)“ ähnlich einem Insert?

Und der Subselect gibt die Felder entsprechend zurück?

Vielen Dank für eine Antwort!!

Viele Grüße…

Björn Urbanek

Hallöle,

hab´ leider im moment keinen Zugriff (da zuhause) auf eine DB.

Aber probier mal so aus:

UPDATE ZielTabelle
SET (Spalte1,Spalte2,Spalte3) = (Select Wert1,Wert2,Wert3
FROM AndereTabelle
WHERE AndereTabelle.UK = ZielTabelle.UK)
WHERE ZielTabelle…

Ich weiss das dies in Where-Klausel von Selects möglich ist; ob dies auch via Update funktioniert kann ich jetzt nicht sagen.

Du musst aber auf jeden Fall darauf achten, das der Sub-Select in dem SET-Befehl nur eine Zeile zurückbringt. Notfalls mal mit ROWNUM

Moin,

heute morgen ausprobiert, funktioniert.

Gruß