提案された値を確認するために選択する例:
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
声明を更新..
null 値の処理を含む (つまり、そのままにしておく)
ソース文字列値に E 表記を使用した科学的値の処理が含まれます。例えば6.6699999999999995E-2
数値の右側にある末尾のゼロの削除を含む
Format 関数を使用します。
float を使用した STR 関数は末尾のゼロを残すため、使用しませんでした。
float から文字列への 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