Предполагая следующие данные:
Column1 (data type: varchar(50))
--------
11.6
-1
1,000
10"
Non-Numeric String
У меня есть запрос, который вытаскивает данные из этого столбца и хотел бы определить, является ли это число числом, а затем возвращает его как таковое в моем запросе. Поэтому я делаю следующее
SELECT CASE WHEN IsNumeric(Replace(Column1,'"','')) = 1 Then Replace(Column1,'"','') Else 0 End As NumericValue
SQL возвращает отчет: Ошибка конверсии при преобразовании значения varchar '11.6 'в тип данных int.
Почему? Я также попытался заставить это сделать:
SELECT CASE WHEN IsNumeric(Replace(Column1,'"','')) = 1 Then cast(Replace(Column1,'"','') as float) Else 0 End As NumericValue
И я получил: Ошибка преобразования типа данных varchar в float.