#sql-server
#sql-server
Вопрос:
Я получил эту ошибку при попытке преобразовать varchar в float с помощью cast или convert:
Ошибка преобразования типа данных varchar в float.
Может кто-нибудь, пожалуйста, помочь?
Код:
SELECT convert(float,isnull(output2,0) ) YTD
FROM A
output2
является varchar
столбцом в таблице A
.
Комментарии:
1. Вы используете
,
вместо.
значения varchar?2. Вы можете попытаться выполнить
SELECT output2 FROM A WHERE try_convert(float,isnull(output2,0) ) IS NULL
, чтобы получить неправильные значения.3. Какие данные в
output2
столбце? Нечисловые данные не будут преобразовываться очень хорошо, например:select convert(float, 'lorem ipsum')
4. Предоставьте структуру таблицы и пример для output2 — в противном случае никто не сможет ответить на этот вопрос.
5. Как и в вашем предыдущем вопросе по той же проблеме — используйте try_convert . И ПОДУМАЙТЕ о своем коде. Мы знаем, что output2 — это varchar , поэтому вы должны заменять нулевые значения строковой константой ‘0’, а не целочисленной константой. Здесь вам повезло, и ваша целочисленная константа неявно преобразуется в varchar. В следующий раз вам может не повезти.
Ответ №1:
решено. Оказывается, что столбец output2 содержит некоторые нечисловые данные, поэтому он не удался