Przykład wybierz, aby sprawdzić proponowane wartości:
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
Zaktualizuj oświadczenie ..
Obejmuje obsługę wartości null (tj. pozostawia je nietknięte)
Obejmuje obsługę wartości naukowych z notacją E w wartościach ciągu źródłowego. np. 6.6699999999999995E-2
Obejmuje usunięcie końcowego zera po prawej stronie numeru
Używana jest funkcja Format.
Funkcja STR z pływakiem pozostawia końcowe zera, więc tego nie użyłem.
Funkcja Convert z liczbą zmiennoprzecinkową na ciąg znaków określa własną liczbę miejsc dziesiętnych, więc chciałem tego również uniknąć!
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
Pamiętaj, że 0 w specyfikatorze formatu ma określone znaczenie.
Zobacz: