У меня есть промежуточная таблица, загружаемая данными из набора данных SAS, содержащего 5M записей. Все столбцы: varchar
. Я пытаюсь преобразовать несколько столбцов в decimal(32,10)
. Но это порождает ошибку. Я попробовал бросить, я попробовал конвертировать и даже разбивать данные до и после десятичного числа - тот же результат.Ошибка преобразования Varchar в десятичный SQL Server
Я посмотрел на флаг колонны IsNumeric
и есть 0 записей <> 1, что означает, что данные являются числовыми.
case
when wtd_count = '.' THEN NULL
when wtd_count = '' THEN NULL
else convert(decimal(32, 10), wtd_count)
end
Ошибка:
Msg 8114, Level 16, State 5, Line 99
Error converting data type varchar to numeric.
Так мне интересно, что еще я могу сделать, чтобы преобразовать данные в десятичную? Есть идеи? Любая помощь будет очень признательна.
Должно быть, оно должно быть десятичным? Как насчет Вала или Лонга? Я предполагаю, что вы хотите, чтобы значение было числом? – Leptonator
Вы, очевидно, имеете хотя бы одно значение в этой таблице, которое не может быть преобразовано в десятичную. Взгляните на TRY_PARSE (https://msdn.microsoft.com/en-us/library/hh213126.aspx), если вы находитесь в 2012 году или новее. –
Спасибо за ваши ответы @Sean Lange. Невозможно использовать Try_Parse, так как я на сервере Sql 11.0.x. – Bee