Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

4 Funktionen zum Formatieren einer Zahl mit 2 Dezimalstellen in SQL Server

Bei der Verwendung von T-SQL mit SQL Server können wir Zahlen je nach gewünschtem Format mit verschiedenen Methoden formatieren.

Unten sind vier Funktionen, die verwendet werden können, um eine Zahl in SQL Server auf zwei Dezimalstellen zu formatieren.

Der CAST() Funktion

Der naheliegendste Weg, dies zu tun, besteht darin, die Zahl in einen Dezimaltyp umzuwandeln. Zwei Funktionen, die dies für uns erledigen können, sind CAST() und CONVERT() .

Hier ist ein Beispiel für die Verwendung von CAST() :

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

Ergebnis:

275.00

Wir können diese Methode auch verwenden, wenn die Zahl bereits ein Dezimalwert ist, jedoch mit mehr Dezimalstellen.

Beachten Sie jedoch Folgendes:Wenn Sie die Anzahl der Dezimalstellen von einer Zahl mit mehr als zwei Dezimalstellen reduzieren, kann dies dazu führen, dass die zweite Dezimalstelle aufgerundet wird:

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

Ergebnis:

275.46

Der CONVERT() Funktion

Hier verwenden wir CONVERT() um dasselbe zu tun – konvertieren Sie die Zahl in eine Dezimalzahl:

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

Ergebnis:

275.00

Das FORMAT() Funktion

Eine andere Möglichkeit, eine Zahl mit zwei Dezimalstellen zu formatieren, ist die Verwendung von FORMAT() Funktion:

SELECT FORMAT(275, 'N2');

Ergebnis:

275.00

Diese Funktion wandelt die Zahl tatsächlich in einen String um, also ist das Ergebnis technisch gesehen kein numerischer Typ.

Das N2 Teil wird als Formatstring bezeichnet. In diesem Fall N steht für Zahl und 2 steht für die Anzahl der Dezimalstellen (Sie können diese nach Bedarf erhöhen oder verringern).

Die gleiche Technik kann verwendet werden, um die Dezimalstellen von einer Zahl mit mehr Dezimalstellen auf zwei zu reduzieren:

SELECT FORMAT(275.4567, 'N2');

Ergebnis:

275.46

Es wurde aufgerundet, genau wie bei der Umwandlung der Zahl im anderen Beispiel.

Eine andere Möglichkeit besteht darin, eine benutzerdefinierte Formatzeichenfolge zu verwenden. Mit benutzerdefinierten Formatzeichenfolgen können Sie ein Format angeben, das möglicherweise nicht von einer Standardformatzeichenfolge unterstützt wird.

Hier ist ein Beispiel für die Verwendung benutzerdefinierter Formatzeichenfolgen:

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

Ergebnis:

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

Wir können sehen, dass es einen Unterschied zwischen der Verwendung von # gibt und 0 im Formatstring. Die # Formatbezeichner unterdrückt alle unbedeutenden Nullen, während 0 Formatbezeichner nicht.

Aber vielleicht noch wichtiger (für die Zwecke dieses Artikels), der 0 Mit dem Formatbezeichner können Sie unbedeutende Nullen hinzufügen, wenn sie in der ursprünglichen Zahl nicht vorhanden sind. Daher kann es verwendet werden, um zwei Dezimalstellen zu einer Ganzzahl hinzuzufügen (wie im obigen Beispiel zu sehen).

Der STR() Funktion

Eine andere Möglichkeit, eine Zahl auf zwei Dezimalstellen zu formatieren, ist die Verwendung von STR() Funktion:

SELECT STR(275, 6, 2);

Ergebnis:

275.00

Diese Funktion gibt aus numerischen Daten konvertierte Zeichendaten zurück. Die Zeichendaten sind rechtsbündig, mit einer angegebenen Länge und Dezimalgenauigkeit.

Das erste Argument ist ein Ausdruck vom Datentyp Float mit einem Dezimalpunkt.

Das zweite Argument ist die Gesamtlänge. Dazu gehören Dezimalpunkt, Vorzeichen, Ziffern und Leerzeichen. Der Standardwert ist 10.

Das dritte Argument ist die Anzahl der Stellen rechts vom Dezimalkomma. Dieser muss kleiner oder gleich 16 sein.