Problem convert Werte in der Spalte von VARCHAR(n) zu DEZIMAL

Ich habe einen SQL Server 2000-Datenbank mit einer Spalte vom Typ VARCHAR(255). Alle Daten, die entweder NULL, oder numerische Daten mit bis zu zwei Punkte für die Genauigkeit (z.B. '11.85'). Ich versuchte, führen Sie folgende T-SQL-Abfrage, erhalte aber die Fehlermeldung "Fehler beim konvertieren von Datentyp varchar in numeric'

SELECT CAST([MyColumn] AS DECIMAL)
FROM [MyTable];

Ich habe versucht, eine spezifische Besetzung, die auch nicht.

SELECT CAST([MyColumn] AS DECIMAL(6,2))
FROM [MyTable];

Ich habe auch versucht, die folgenden, um zu sehen, wenn irgendwelche Daten nicht numerisch ist, und der einzige zurückgegebenen Werte waren NULL.

SELECT ISNUMERIC([MyColumn]), [MyColumn]
FROM [MyTable]
WHERE ISNUMERIC([MyColumn]) = 0;

Habe ich versucht zu konvertieren in andere Datentypen, wie FLOAT und GELD, aber nur GELD war erfolgreich. Also ich habe Folgendes versucht:

SELECT CAST(CAST([MyColumn] AS MONEY) AS DECIMAL)
FROM [MyTable];

...das hat Prima funktioniert. Irgendwelche Ideen, warum die original-query failed? Wird es ein problem, wenn ich zuerst konvertieren zu GELD und dann zu DEZIMAL?

Dank!

InformationsquelleAutor Kevin Babcock | 2010-04-06

Schreibe einen Kommentar