mysql cast

Daisserdochnoch

Benutzer
Beiträge
8
Hallo,

das hier funktioniert in mssql, aber ich weiß nicht wie ich das in mysql richtig schreibe, dort funktioniert es so leider nicht.

Concat(col2, Replicate('0', 4-Len(col1)) + Cast(col1 as varchar(4)))

Es wird ein Fehler in der Nähe von varchar(4) gemeldet. Wisst ihr was ich da übersehe?

Viele Grüße
 
Zuletzt bearbeitet:
Werbung:
Ich weiß ja nicht viel von MySQL (außer daß es grottig ist), aber möglicherweise erkennt es bei "as" eine Alias-Zuweisung und keinen CAST.
 
Wenn man in Rente wäre, hätte man echt gute Chancen mit der Interpretation von MySQL Fehlermeldungen die Zeit rum zu kriegen.
Varchar ist kein erlaubter Typausdruck für Cast (und Convert).
Ich bin etwas irritiert, dass solche Meldungen wie "in der Nähe von Varchar" gibt es einen Fehler selbst bei der 8er Version kommen, wo ja alles viel besser sein soll. Sogar Klammern u.ä. sind wahrscheinlich "sicherheitshalber" mit aufgeführt. Klammern sind ja immer problematisch.

Aber, selbst wenn die Fehlermeldungen schlecht sind. Die Doku ist nicht ganz so schlecht. Es wird lustig, da steht so ungefähr:
Typangabe CHAR ist erlaubt und produziert ein Ergebnis vom Typ Varchar. Ausnahme, der Eingangswert ist NULL, dann kommt kein Typ Varchar raus.

Das würde ich fast unter der Kategorie Informatikerwitze laufen lassen. Wohlgemerkt, da steht CHAR ist erlaubt und ergibt VARCHAR. Da steht nicht, dass VARCHAR erlaubt ist.
Ja und was man auch in der Doku findet, CAST mit AS und CONVERT mit ","..
Na mir soll's egal sein, ich nutze es nicht.
 
Werbung:
das ist echt doof.
Ja, MySQL ..

Char dachte ich ist nur ein Buchstabe, man kann aber sogar Char(3) die Länge auf 3 begrenzen.
Naja, gerade bei Fehlermeldungen ist ein Blick in die Doku lohnend. Manchmal hilft es, weniger zu denken.

Und nochmal zu dem Typ Wirrwar:
Char ist als Spaltentyp keineswegs nur ein Buchstabe. Es unterscheidet sich von Varchar lediglich durch die Speicherart (und jenachdem Darstellung/Umgang mit den Buchstaben, Leerzeichen). Varchar ist die modernere Form, die normal auch am meisten verwendet wird. Das gilt für viele DB so oder so ähnlich.

Dass die Cast Funktion von MySQL (und die Doku) so eine "eigenwilliges" Notation und Verhalten zeigt, ist etwas "Besonderes".
 
Zurück
Oben