Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

Spalte einer Tabelle vom Datentyp varchar(max) in int konvertieren

Dieses Thema im Forum "Microsoft SQL Server" wurde erstellt von SA-Luebeck, 29 Juni 2020.

  1. SA-Luebeck

    SA-Luebeck Neuer Benutzer

    Hallo an Alle,

    ich habe eine Tabelle "ArtikelBeschreibung" mit folgenden Spalten:

    d8e873-1593450292.png
    Ich will die Spalte "cBeschreibung" als int ausgeben, bekomme aber die folgende Fehlermeldung:

    Meldung 245, Ebene 16, Status 1, Zeile 20 Fehler beim Konvertieren des varchar-Werts "Muller Bogen-04240418900-00" in den int-Datentyp.

    Meine Abfrage:

    SELECT (case when isnumeric(Description) = 1 then cast (Description as int) end)
    FROM ArtikelBeschreibung

    So wie ich das verstehe, hängt es damit zusammen, dass varchar(max) eine variable Länge besitzt.

    Gibt es hierfür einen anderen Lösungsweg?
     
  2. akretschmer

    akretschmer Datenbank-Guru

    Nein, das hängt damit zusammen, daß 'Muller Bogen-04240418900-00' nun mal keine Ganzzahl ist. Oder anders formuliert:

    was ist 'Muller Bogen-04240418900-00' + 'Mülleimer-0815' ?
     
  3. ukulele

    ukulele Datenbank-Guru

    isnumeric() liefert dir auch für Komma und ich glaube auch für . ein True zurück. Integer kann aber nur ganze Zahlen aufnehmen, vermutlich scheitert es dort irgendwo.

    Besser man speichert Daten gleich im richtigen Format dann gibt es genau solche Probleme nicht. Sieht stark nach CMS oder sowas aus.
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden