sql >> Databáze >  >> RDS >> Sqlserver

Zaokrouhlení hodnoty ve sloupci varchar v MS SQL Server 2012?

Příklad výběru pro kontrolu navrhovaných hodnot:

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

Aktualizovat výpis ..

Zahrnuje zpracování nulové hodnoty (tj. ponechává je nedotčené)

Zahrnuje zpracování vědeckých hodnot se zápisem E v hodnotách zdrojového řetězce. např. 6,6699999999999995E-2

Zahrnuje odstranění koncové nuly na pravé straně čísla

Je použita funkce Format.

Funkce STR s plovákem zanechává koncové nuly, takže jsem ji nepoužil.

Funkce Convert with float to string určuje svůj vlastní počet desetinných míst, takže tomu jsem se také chtěl vyhnout!

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

Upozorňujeme, že 0 ve specifikátoru formátu má specifický význam.

Viz:

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




  1. Hive hash funkce, která má za následek 0, null a 1, proč?

  2. Jak používat Spring's JdbcTemplate k připojení k jednoduché databázi MySql?

  3. PDO odmítá smazat řádek dat (v konkrétní tabulce)

  4. Oracle SQL – kolo – polovina