Beispielauswahl zum Prüfen der vorgeschlagenen Werte:
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
Anweisung aktualisieren ..
Beinhaltet die Behandlung von Nullwerten (d. h. lässt sie unberührt)
Umfasst die Handhabung wissenschaftlicher Werte mit E-Notation in Quellstringwerten. z.B. 6.6699999999999995E-2
Beinhaltet das Entfernen der nachgestellten Null auf der rechten Seite der Zahl
Die Format-Funktion wird verwendet.
Die STR-Funktion mit Float hinterlässt nachgestellte Nullen, also habe ich das nicht verwendet.
Die Konvertierungsfunktion mit einem Float in einen String bestimmt ihre eigene Anzahl an Dezimalstellen, also wollte ich das auch vermeiden!
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
Bitte beachten Sie, dass die 0 im Formatbezeichner eine bestimmte Bedeutung hat.
Siehe bitte:
https://docs.microsoft .com/en-us/dotnet/standard/base-types/custom-numeric-format-strings