sql >> Database >  >> RDS >> Sqlserver

Afronding van een waarde in een varchar-kolom in MS SQL Server 2012?

Voorbeeld selecteren om voorgestelde waarden te controleren:

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

Verklaring bijwerken ..

Omvat verwerking van null-waarde (d.w.z. laat ze onaangeroerd)

Omvat verwerking van wetenschappelijke waarden met E-notatie in brontekenreekswaarden. bijv. 6.6699999999999995E-2

Omvat het verwijderen van de nul aan de rechterkant van het nummer

De formaatfunctie wordt gebruikt.

De STR-functie met een float laat nullen achter, dus die heb ik niet gebruikt.

De Convert-functie met een float naar een string bepaalt zijn eigen aantal decimalen, dus dat wilde ik ook vermijden!

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

Let op:de 0 in de formaatspecificatie heeft een specifieke betekenis.

Zie:

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




  1. Kan migratiemethode niet vinden:omhoog

  2. Localhost php_network_getaddresses:getaddrinfo mislukt:zo'n host is niet bekend

  3. Een bestandsgroep toevoegen aan een SQL Server-database (T-SQL)

  4. Reverse engineer (oracle) schema naar ERD