Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo Leute,

folgendes Problem. Ich hab eine Tabelle. Diese Tabelle will ich spiegel und um eine Spalte ergänzen. Diese neue Spalte soll sich aus zwei anderen Spalten zusammen setzen.

Also meine Tabelle heisst Test und hat die Attribute A1, A2, A3, und A4.

Meine Tabelle Test2 soll folgendermaßen aussehen: A1, A2, A3, A4 und A5, wobei A5 den Inhalt von A3 + A4 hat. Alle Attribute sind Integer Werte.

So weit bin ich:

Create Table Test2(

A1 integer not null,

A2 integer not null,

A3 integer not null,

A4 integer not null,

A5 ....................

insert into Test2

select A1, A2, A3, A4, .......................

from Test

Danke

Gruss

hackschnitzel

Geschrieben

Das hab ich schon ausprobiert. Er rechnet dann die Summe aus (egal, ob ich in der Deklaration char oder integer nehme), genau das will ich vermeiden.

Er soll aus 234234 und 111 gleich 234234111 machen.

Geschrieben

Dann krieg ich als Fehlermeldung:

"Data Type "A3" does not match a Defined Type name".

Also A3 und A4 sind integer Werte. Und es ist egal, ob ich mein A5 als integer oder als char nehme, es kommt diese Meldung.

Geschrieben

Also dann so, dieses mal getestet (A5 ist char):

insert into Test2 (A1, A2, A3, A4, A5)

select A1, A2, A3, A4, ( Cstr(A3) & CStr(A4) )

from Test1;

Anmerkung: dein o.a. Beispiel kann so nicht stimmen: wenn A3 wirklich 234234 enthält, ist es auf keinen Fall ein integer.

Grüße

Reinhold

Geschrieben

es kommt wie immer darauf an, welches DBMS verwendet wird - demzufolge reagiert eine solche operation auch unterschiedlich.

ich kann hier nur herauslesen, dass werte konkateniert und nicht addiert werden sollen - und das heisst, dass auch eine dafür ausgelegte funktion dafür verwendet werden sollte, weil die nämlich in den meisten fälle mit abweichenden datentypen wie INT/NUMBER anstelle von CHAR/VARCHAR umgehen kann.

abhängig von der art des DBMS kann die funktion natürlich unterschiedlich heissen: bei MySQL und oracle wäre dies z.b. CONCAT.

s'Amstel

Geschrieben

Also beim Beispiel handelt es sich um keine Originaldaten. Deswegen ist die Zahl so lang. Das sollte aber egal sein.

Die Versionsnummer finde ich irgendwie nicht heraus. Das Programm mit dem ich arbeite, ist ein SQL-Assistent integriert in einen anderen Programm, daher sehe ich nur diese Versionsnummer.

Auf jeden Fall mal Danke, werde die Vorschläge testen und danach Feedback geben.

Geschrieben

Ich habs jetzt mit CONCAT gemacht. Mein A5 hab ich als char(29) deklariert und in der select anweisung hab ich CONCAT(A3,A4) geschrieben.

Das einzige was mich jetzt noch stört ist, dass er mir zwischen die beiden Nummern ein Leerzeichen setzt.

Mein A5 sieht jetzt so aus: 234234 111

Kann man das noch umgehen?

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...