CAST NVARCHAR zu Float - nur bei ISNUMERIC

Werbung:
Im ersten Post wurde schon ein CASE verwendet, das wird wohl nicht das Problem sein. Auch ich habe ein CASE mit convert() vorgeschlagen.

Allerdings gibt's von @HeikoD keine Infos. WIchtig wäre:

Warum funktioniert das nicht? Hast du eine Fehlermeldung? Testest du überhaupt im SQL Management Studio oder nur in deiner Anwendung?

Zeig mal Beispielwerte die sich nicht konvertieren lassen.
 
Vielleicht hilft ein Ausschnitt aus der Tabelle (Siehe Anhang). Mir ist es nicht gelungen die Spalte VARVAL als Float zu konvertieren, wenn in dem jeweiligen Datensatz KEIN alphanumerischer Eintrag vorhanden ist bzw. bekomme Fehler, wenn dort eben keine Zahl enthalten ist.
 

Anhänge

  • TEST.SQL.TXT
    5,4 KB · Aufrufe: 3
Ich sehe das Problem nicht, die Lösung steht schon hier.
Code:
SELECT (CASE WHEN isnumeric(VARVAL)=0 THEN NULL ELSE convert(FLOAT,VARVAL) END) AS spalte,* FROM test
Das nicht numerische Werte nicht in FLOAT konvertieren können ist irgendwie klar. Das alle Werte in der Spalte den selben Datentyp haben müssen hat @akretschmer in #2 geschrieben und ich habe es in #3 berücksichtigt und auch nochmal erläutert. Entweder der nicht numerische Wert wird NULL und ggf. in einer weiteren Spalte angezeigt oder du konvertierst in einen numerischen Wert und wieder in Text, nur um zu prüfen. Letzteres macht keinen Sinn weil man dann ja immer noch nicht damit rechnen kann.
 
Werbung:
Ich sehe das Problem nicht, die Lösung steht schon hier.
Code:
SELECT (CASE WHEN isnumeric(VARVAL)=0 THEN NULL ELSE convert(FLOAT,VARVAL) END) AS spalte,* FROM test
Das nicht numerische Werte nicht in FLOAT konvertieren können ist irgendwie klar. Das alle Werte in der Spalte den selben Datentyp haben müssen hat @akretschmer in #2 geschrieben und ich habe es in #3 berücksichtigt und auch nochmal erläutert. Entweder der nicht numerische Wert wird NULL und ggf. in einer weiteren Spalte angezeigt oder du konvertierst in einen numerischen Wert und wieder in Text, nur um zu prüfen. Letzteres macht keinen Sinn weil man dann ja immer noch nicht damit rechnen kann.
Vielen Dank. Der Weg mit einer weiteren Spalte klingt für mich machbar.
 
Zurück
Oben