![]() |
Datenbank: Firebird • Version: 1.5 • Zugriff über: IBX: TIBQuery
[SQL, firebird] Werte von zwei Spalten tauschen
Wie kann ich per SQL die Werte von zwei Spalten tauschen? Folgendes habe ich probiert:
SQL-Code:
Es erscheint die Fehlermeldung, obwohl KONTO keine Nullwerte enthält:
update buchung
set Konto = :OLD_Gegenkonto, Gegenkonto = :OLD_Konto validation error for column KONTO, value "*** null ***" |
Re: [SQL, firebird] Werte von zwei Spalten tauschen
Und wenn Du die Zeichenfolge ":OLD_" mal weglässt?
|
Re: [SQL, firebird] Werte von zwei Spalten tauschen
Hallo,
update table_X set field='bla1', fiel2='bla2 ??? where id=was_wees_icke Heiko |
Re: [SQL, firebird] Werte von zwei Spalten tauschen
oder ne kleine SP
|
Re: [SQL, firebird] Werte von zwei Spalten tauschen
Zitat:
Aber generell wird bei einem Update die rechte Seite von vor dem Update genommen.
SQL-Code:
Wenn das nicht geht, dann das
update Buchung
set Konto = Gegenkonto, Gegenkonto = Konto WHERE BlablablB
SQL-Code:
update Buchung t
set (Konto, Gegenkonto) = (SELECT Gegenkonto, Konto FROM Buchung WHERE ID = t.ID) WHERE BlablablB |
Re: [SQL, firebird] Werte von zwei Spalten tauschen
Zitat:
|
Re: [SQL, firebird] Werte von zwei Spalten tauschen
Code:
Klappt nicht, da haben beide Felder dann die selben Werte.
update Buchung
set Konto = Gegenkonto, Gegenkonto = Konto WHERE BlablablB
Code:
Klappt nicht. Syntaxfehler: Die Klammer nach set stört. Wenn die gelöscht wird, stört Firebird das Komma zwischen Konto, Gegenkonto.
update Buchung t
set (Konto, Gegenkonto) = (SELECT Gegenkonto, Konto FROM Buchung WHERE ID = t.ID) WHERE BlablablB |
Re: [SQL, firebird] Werte von zwei Spalten tauschen
SQL-Code:
[Edit: überflüssiges , entfernt]
update
Buchung t set Konto = (SELECT Gegenkonto FROM Buchung WHERE ID = t.ID), Gegenkonto =(SELECT Konto FROM Buchung WHERE ID = t.ID) WHERE BlablablB |
Re: [SQL, firebird] Werte von zwei Spalten tauschen
Ich hätte nicht gedacht, dass Firebird sich da so zickig hat. Vielmehr war ich davon ausgegangen, was Elvis auch schon gesagt hat:
Zitat:
|
Re: [SQL, firebird] Werte von zwei Spalten tauschen
Die Lösung von mkinzler im Beitrag #8 klappt, wenn man das Komma hinter Gegenkonto entfernt. Danke an alle!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:43 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz