Konvertieren von nvarchar numeric in MSSQL-Server
Ich habe eine nvarchar-Spalte mit einer Liste von Einträgen wie (einschließlich Null)-
-1.00000
0.000000
0.010000
0.100000
0.500000
00000000
1.000000
1.500000
10.00000
10.50000
100.0000
1000.000
1001.000
1006.000
NULL
NULL
Will ich wandeln diese in ein numerisches Feld, so dass ich können dieses Feld verwenden, um einige Berechnungen durchzuführen. Allerdings bekomme ich folgende Fehlermeldung-
Fehler beim konvertieren von Datentyp nvarchar float.
Kann mir bitte jemand helfen?
- Bearbeiten Sie Ihre Frage beinhalten und möglichst einfachen Abfrage können Sie, die das problem veranschaulicht.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihrer Daten, erscheint die Werte nicht gültige numerische Werte. Verwenden
try_convert()
:Diese zurück
NULL
wenn es einen Fehler in der Konvertierung.Finden Sie die Werte, nicht die conversion by doing:
Müssen Sie
try_convert()
wo Sie auf die Spalte verweisen, als eine numerische. Die Umwandlung in dieselect
gilt nur für dieselect
.TRY_CONVERT
nicht erzeugen diese Fehlermeldung, als wenn die Konvertierung fehlschlägt,NULL
ist zurück. vielleicht könnte man Bearbeiten Sie Ihre post mit Ihrem (neuen) Abfrage?TRY_CONVERT
ausgewertet wird.try_convert
Werke von SQL-Server (ab 2012) .ich erhalte eine FehlermeldungMsg 195, Level 15, State 10, Line 2 'TRY_CONVERT' is not a recognized built-in function name.
als ich versuchte mit einem Beispiel : SELECT TRY_CONVERT(INT, 'A100.000') ALS ValueInt`TRY_PARSE
undTRY_CAST
Funktionen funktionieren 🙁try_cast()
statt.Nur, um zu demonstrieren, Gordon ' s Methode, bei OP braucht:
Verwenden
try_convert(numeric(38,5), [ColumnName])
Dieser wird NULL zurückgeben, wenn Sie nicht konvertieren Sie die Zeichenfolge. Wenn es kann, wird es in der Lage, konvertieren Sie es in eine numerische Zahl