Я не могу получить следующий запрос для работы из-за ошибок при преобразовании из nvarchar в float; Мне нужно преобразовать поле Data в float для его округления, но данные изначально представляют собой NVARCHAR (20), потому что в столбце также хранятся символьные данные. Я пробовал лить каждый из экземпляров данных, чтобы плавать, но он все еще не работал, может ли кто-нибудь сказать мне, что мне не хватает?Преобразование из nvarchar в float не работает
UPDATE tblData SET tblData.theNumericData = CASE WHEN IsNumeric([theData]) = 1
THEN Round(Convert(float, [theData]),(Len([theData])-Charindex('.',[theData])))
ELSE Null END
WHERE tblData.theFlag =1;
Я попытался следующие два варианта ...
UPDATE tblData SET tblData.theNumericData = CASE WHEN IsNumeric([theData]) = 1
THEN Round(Convert(float, [theData]),(Len(Convert(float, [theData]))-
Charindex('.',Convert(float, [theData]))))
ELSE Null END
WHERE tblData.theFlag =1;
и ...
UPDATE tblData SET tblData.theNumericData = CASE WHEN IsNumeric([theData]) = 1
THEN Convert(nvarchar(20),Round(Convert(float, [theData]),(Len(Convert(float,
[theData]))- Charindex('.',Convert(float, [theData]))))) ELSE Null END
WHERE tblData.theFlag =1;
У вас возникли ошибки? – Robbert
Да, я получаю типичную и непротиворечивую ошибку. «Ошибка преобразования типа данных nvarchar в float». – codingManiac
Я предлагаю вам запустить запрос 'select thedata из tblData, где isnumeric (thedata) = 1 order by theata'. По всей вероятности, проблематичные строки будут в верхней или нижней части списка. –