Пример выбора для проверки предложенных значений:
select
case when ISNULL([Call Length], '') = ''
then ''
else
FORMAT(Cast ( CONVERT(numeric(16,4), CAST([Call Length] AS FLOAT)) as float),'########0.####')
end as val123
from Clinical.AAAJFJunk
Оператор обновления.
Включает обработку нулевого значения (т.е. оставляет их нетронутыми)
Включает обработку научных значенийзначения с обозначением E в исходных строковых значениях.например, 6.6699999999999995E-2
Включает удаление конечного нуля с правой стороны числа
Используется функция Format.
Функция STR с плавающей запятой оставляет конечные нули, поэтомуЯ этим не пользовался.
Функция Convert с плавающей точкой в строке определяет собственное количество десятичных знаков, поэтому я также хотел этого избежать!
UPDATE Clinical.AAAJFJunk
SET [Call Length] =
case when ISNULL([Call Length], '') = ''
then '' else
FORMAT(Cast ( CONVERT(numeric(16,4), CAST([Call Length] AS FLOAT)) as float),'########0.####') end
Обратите внимание на 0в спецификаторе формата имеет конкретное значение.
Пожалуйста, см .:
https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings