Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Arrotondamento di un valore in una colonna varchar in MS SQL Server 2012?

Esempio selezionare per verificare i valori proposti:

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

Dichiarazione di aggiornamento..

Include la gestione del valore nullo (cioè li lascia intatti)

Include la gestione dei valori scientifici con la notazione E nei valori della stringa di origine. per esempio. 6.669999999999999995E-2

Include la rimozione dello zero finale sul lato destro del numero

Viene utilizzata la funzione Formato.

La funzione STR con un float lascia degli zeri finali, quindi non l'ho usato.

La funzione Converti con un float in una stringa determina il proprio numero di posizioni decimali, quindi volevo evitare anche quello!

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

Tieni presente che lo 0 nell'identificatore di formato ha un significato specifico.

Si prega di vedere:

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