sql >> Databasteknik >  >> RDS >> Sqlserver

Avrundning av ett värde i en varchar-kolumn i MS SQL Server 2012?

Exempel välj för att kontrollera föreslagna värden:

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

Uppdatera uttalande ..

Inkluderar hantering av nullvärde (dvs lämnar dem orörda)

Inkluderar hantering av vetenskapliga värden med E-notation i källsträngsvärden. t.ex. 6,66999999999999995E-2

Inkluderar borttagning av efterföljande nolla på höger sida av nummer

Formatfunktionen används.

STR-funktionen med en float lämnar eftersläpande nollor, så det använde jag inte.

Funktionen Konvertera med ett flytande till en sträng bestämmer det egna antalet decimaler så jag ville undvika det också!

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

Observera att nollan i formatspecifikationen har en specifik betydelse.

Se:

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




  1. SQL SERVER – Trick – Köra SSMS med olika Windows-konton

  2. if elseif villkor i mysql-frågan

  3. Installation av specifika paketversioner med pip

  4. uttalande ANVÄND @dbname fungerar inte, varför? Hur gör man det?