2015-12-07 3 views
0

У меня есть следующие запросы.Непоследовательный результат isnumeric

select ISNUMERIC(result+ 'E0'), from t1 
    select ISNUMERIC('7' + 'E0') 
    select ISNUMERIC('7' + '.E0') 

Тип данных результата столбца VARCHAR (50) .The первые выходы запроса 0 даже тогда, когда результат, как 2,3 и возвращает 1 для поплавка только ... Принимая во внимание, второй и третий запрос отлично работает для обоих integer и float.Am Я ничего не пропустил? Мое требование - проверить, является ли столбец результата числом (integer, float) или нет. Я знаю isnumeric возвращает 1 для типа, как деньги, небольшие деньги, реальные и т. Д., Но это не так, потому что у меня нет такого типа в моем результат, и я получаю только 0.

+0

посмотрите здесь: http://www.tek-tips.com/faqs.cfm?fid=6423 – Milen

+0

Я использую MS SQL 2014. – bill

ответ

1

Причиной непоследовательного результата может быть то, что в вашем столбце результата есть пробел. Попробуйте тайминги текст и кормить обрезанный текст ISNUMERIC:

select ISNUMERIC(ltrim(rtrim(result))+ 'E0') from t1 
+0

Спасибо. Вы правы, это из-за пространства. Он работает, но когда я попытался скопировать данные ячейки и вставить в блокнот и другой редактор, я не смог найти место. – bill

Смежные вопросы