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

4 функции за форматиране на число до 2 десетични знака в SQL Server

Когато използваме T-SQL със SQL Server, можем да форматираме числа, използвайки различни методи, в зависимост от желания формат.

По-долу са четири функции, които могат да се използват за форматиране на число до два знака след десетичната запетая в SQL Server.

CAST() Функция

Най-очевидният начин да го направите е да преобразувате числото в десетичен тип. Две функции, които могат да направят това вместо нас, е CAST() и CONVERT() .

Ето пример за използване на CAST() :

SELECT CAST(275 AS DECIMAL(5, 2));

Резултат:

275.00

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

Едно нещо, което трябва да запомните обаче, е, че ако намалявате броя на десетичните знаци от число с повече от два знака след десетичната запетая, тогава може да се окаже, че вторият знак след десетичната запетая се закръгли нагоре:

SELECT CAST(275.4567 AS DECIMAL(5, 2));

Резултат:

275.46

CONVERT() Функция

Тук използваме CONVERT() за да направите същото – преобразувайте числото в десетично:

SELECT CONVERT(DECIMAL(5, 2), 275);

Резултат:

275.00

FORMAT() Функция

Друг начин за форматиране на число с два знака след десетичната запетая е да използвате FORMAT() функция:

SELECT FORMAT(275, 'N2');

Резултат:

275.00

Тази функция всъщност преобразува числото в низ, така че технически резултатът не е числов тип.

N2 част се означава като форматен низ. В този случай N е за число и 2 е за броя на десетичните знаци (можете да увеличите или намалите това според нуждите).

Същата техника може да се използва за намаляване на десетичните знаци до две, от число с повече десетични знаци:

SELECT FORMAT(275.4567, 'N2');

Резултат:

275.46

Закръглено е нагоре, точно както когато преобразувахме числото в другия пример.

Друг начин да го направите е да използвате низ за персонализиран формат. Низовете за персонализиран формат ви позволяват да посочите формат, който може да не се поддържа от низ за стандартен формат.

Ето пример за използване на низове за персонализиран формат:

SELECT 
    FORMAT(275, '###.##') AS "###.##",
    FORMAT(275, '000.00') AS "000.00",
    FORMAT(275.4567, '###.##') AS "###.##",
    FORMAT(275.4567, '000.00') AS "000.00";

Резултат:

+----------+----------+----------+----------+
| ###.##   | 000.00   | ###.##   | 000.00   |
|----------+----------+----------+----------|
| 275      | 275.00   | 275.46   | 275.46   |
+----------+----------+----------+----------+

Можем да видим, че има разлика между използването на # и 0 във форматния низ. # спецификаторът на формат потиска всички незначителни нули, докато 0 спецификаторът на формат не го прави.

Но може би по-важното (за целите на тази статия) е 0 спецификаторът на формат ви позволява да добавяте незначителни нули, ако те не присъстват в оригиналния номер. Следователно може да се използва за добавяне на два знака след десетичната запетая към цяло число (както се вижда в горния пример).

STR() Функция

Друг начин да форматирате число до два знака след десетичната запетая е да използвате STR() функция:

SELECT STR(275, 6, 2);

Резултат:

275.00

Тази функция връща символни данни, преобразувани от числови данни. Знаковите данни са подравнени надясно, с определена дължина и десетична точност.

Първият аргумент е израз на тип данни с плаваща стойност с десетична запетая.

Вторият аргумент е общата дължина. Това включва десетична запетая, знак, цифри и интервали. По подразбиране е 10.

Третият аргумент е броят на местата вдясно от десетичната запетая. Това трябва да е по-малко или равно на 16.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Защо използването на знак за долна черта във филтър LIKE ми дава всички резултати?

  2. Временната таблица на Sql Server изчезва

  3. Как да стартирам съхранена процедура в sql сървър на всеки час?

  4. Изберете изявление, за да намерите дубликати в определени полета

  5. Двусмислена грешка в името на колоната на един конкретен сървър