Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Закръгляване на стойност в колона varchar в MS SQL Server 2012?

Примерен избор за проверка на предложените стойности:

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

Изявление за актуализация ..

Включва обработка на нулева стойност (т.е. оставя ги недокоснати)

Включва обработка на научни стойности с E нотация в стойностите на изходния низ. напр. 6.6699999999999995E-2

Включва премахване на нулата в края от дясната страна на числото

Използва се функцията Format.

Функцията STR с float оставя нули в края, така че не съм я използвал.

Функцията Convert с float в низ определя собствения си брой десетични знаци, така че исках да избегна и това!

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

Моля, имайте предвид, че 0 в спецификатора на формата има конкретно значение.

Моля, вижте:

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




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Обхват на променливата на SQL Server в съхранена процедура

  2. Размер на единичен запис? SQL

  3. Как да промените модела за възстановяване на база данни на SQL Server с помощта на T-SQL

  4. Репликация на SQL Server чрез FTP

  5. SQL Server datetime LIKE изберете?