У меня есть столбец данных, который содержит 9 цифр числовых значений, но столбец определяется как varchar. Мне нужно CAST поле к числовому значению, поэтому я могу разделить сумму столбца на 100. Например,SQL Server CAST из varchar в числовой сбой с ошибкой
select CAST(field1 as numeric(9,2))/100 from table;
я получаю следующее сообщение об ошибке при выполнении запроса: Ошибка арифметического переполнения преобразования VARCHAR к типу данных числового.
Если я выполняю двойной CAST из varchar -> int -> numeric, работает CAST. например
select CAST(CAST(field1 as int) as numeric(9,2))/100 from table;
Есть ли причина, почему одного CAST от VARCHAR -> Числовые приводит к ошибке SQL, но работы двойные CAST?
Что такое ** значение ** вашего 'field1', которое вы пытаетесь преобразовать? NUMERIC (9,2) будет иметь только 7 цифр до десятичной точки - так что ничего больше 10 миллионов ** будет ** вызывать числовое переполнение .... –
Большинство значений в поле 0000xxxxx, где есть 3 -4 ведущие ноль. В CAST нет десятичных значений в поле. –