Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Arrondi d'une valeur dans une colonne varchar dans MS SQL Server 2012 ?

Exemple de sélection pour vérifier les valeurs proposées :

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

Mettre à jour l'instruction ..

Inclut la gestion des valeurs nulles (c'est-à-dire les laisse intactes)

Inclut la gestion des valeurs scientifiques avec la notation E dans les valeurs de chaîne source. par exemple. 6.6699999999999995E-2

Inclut la suppression du zéro à droite du numéro

La fonction Format est utilisée.

La fonction STR avec un flottant laisse des zéros à la fin, donc je ne l'ai pas utilisé.

La fonction Convertir avec un flottant en une chaîne détermine son propre nombre de décimales donc je voulais éviter cela aussi !

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

Veuillez noter que le 0 dans le spécificateur de format a une signification spécifique.

Veuillez consulter :

https://docs.microsoft .com/en-us/dotnet/standard/base-types/custom-numeric-format-strings