SQL IsNumeric не работает - PullRequest
       24

SQL IsNumeric не работает

7 голосов
/ 27 сентября 2011

Резервный столбец - это varchar, для суммирования я хочу привести его к deciaml.Но приведенный ниже SQL дает мне ошибку

select
cast(Reserve as decimal)
from MyReserves

Ошибка преобразования типа данных varchar в числовой.

Я добавил isnumeric, а не null, чтобы попытаться избежать этой ошибки, но она все еще сохраняется, любаяидеи почему?

select
cast(Reserve as decimal)
from MyReserves
where isnumeric(Reserve ) = 1
and MyReserves is not null

Ответы [ 11 ]

0 голосов
/ 27 сентября 2011

IsNumeric, возможно, не идеален в вашем сценарии, поскольку из выделенной заметки на этой странице MSDN написано "ISNUMERIC возвращает 1 для некоторых символов, которые не являются числами, например плюс (+), минус (-) и действительные символы валюты, такие как знак доллара ($). "

Также есть хорошая статья здесь , в которой более подробно обсуждается ISNUMERIC.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...