Příklad výběru pro kontrolu navrhovaných hodnot:
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
Aktualizovat výpis ..
Zahrnuje zpracování nulové hodnoty (tj. ponechává je nedotčené)
Zahrnuje zpracování vědeckých hodnot se zápisem E v hodnotách zdrojového řetězce. např. 6,6699999999999995E-2
Zahrnuje odstranění koncové nuly na pravé straně čísla
Je použita funkce Format.
Funkce STR s plovákem zanechává koncové nuly, takže jsem ji nepoužil.
Funkce Convert with float to string určuje svůj vlastní počet desetinných míst, takže tomu jsem se také chtěl vyhnout!
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
Upozorňujeme, že 0 ve specifikátoru formátu má specifický význam.
Viz:
https://docs.microsoft .com/en-us/dotnet/standard/base-types/custom-numeric-format-strings