[SQL allg.] UPDATE...SET: Mehrere Werte in eine Zeile/Spalte - Wie?

acquire

Mitglied
Hallo zusammen,

ich arbeite gerade mit IB Expert/Firebird 2.0, es ist dennoch (oder es sollte zumindest) eine allgemeine SQL-Frage:

Ich habe die Tabelle t_art mit den Spalten nummer, bezeichnung und murks.
Nun möchte ich in die Spalte murks zuerst die Spalte nummer kopieren, gefolgt von einem String ": " und anschließend die Spalte bezeichnung.
Beispielausgabe wäre: "1: Das ist eine tolle Bezeichnung!"
Den Code stelle ich mir so vor: murks = (nummer+': '+bezeichnung)
Das funktioniert natürlich nicht.

Wie heißt ein entsprechender Bindeoperator? Bei PHP ist es ein Punkt (geht hier auch nicht, genausowenig wie AND oder &). Im Internet und hier im Forum konnte ich mit meinen Suchbegriffen auch nichts finden.

Mein SQL-Code bisher:
Code:
UPDATE t_art
   SET murks = (nummer+': '+bezeichnung)

Btw: Ich brauche eine SQL-Lösung, keine PHP oder anderweitig programmierte, das schaffe ich auch. Ich habe hier nämlich gerade eine SQL Übungsaufgabe, nur keine Lösung...

Vielen Dank für eure Aufmerksamkeit.
 
Danke niggo.
Jetzt kenne ich endlich den fehlenden Operator "||".

Das ganze geht natürlich auch mit Unterabfragen...
SQL:
UPDATE t_art a
 SET murks=(select nummer from t_art k where a.nummer=k.nummer) || ': ' ||
(select bezeichnung from t_art k where a.nummer=k.nummer)
 
Danke für deinen Beitrag, David.
Der Link ist sehr interessant.
Ich habe die Spalte nicht umsonst murks genannt. Ist halt eine Übungsaufgabe für eine Klausur und Lehrer sind bekanntermaßen bisweilen etwas eigensinnig.

Das Thema ist erledigt, aber wie soll/kann ich das denn bitte schließen.

Falls das hier gerade einer liest: Warum kann man Aggregatfunktionen nicht in WHERE-Klauseln benutzen, sondern muss dafür HAVING benutzen? Ich sehe darin keinen Sinn. Für mich wäre mit WHERE weniger Schreibarbeit.
 

Neue Beiträge

Zurück