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

3 Möglichkeiten zum Konvertieren einer ganzen Zahl in eine Dezimalzahl in SQL Server

Hier sind drei Optionen zum Konvertieren einer ganzen Zahl in einen Dezimalwert in SQL Server mit T-SQL.

Der CAST() Funktion

Der CAST() Funktion konvertiert einen Ausdruck eines Datentyps in einen anderen:

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

Ergebnis:

275.00

In diesem Beispiel haben wir eine Ganzzahl (275 ) in einen Dezimalwert mit einer Genauigkeit von 5 und mit 2 Nachkommastellen.

Dezimal und numerisch sind Synonyme und können austauschbar verwendet werden. Daher können wir unser Beispiel wie folgt anpassen, um dasselbe Ergebnis zu erzielen:

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

Ergebnis:

275.00

Es ist wichtig, daran zu denken, die Genauigkeit nach Bedarf anzupassen:

SELECT CAST(18301275 AS DECIMAL(10, 2));

Ergebnis:

18301275.00

Wenn das Präzisionsargument nicht groß genug ist, tritt ein Fehler auf:

SELECT CAST(18301275 AS DECIMAL(9, 2));

Ergebnis:

Msg 8115, Level 16, State 8, Line 1
Arithmetic overflow error converting int to data type numeric.

Der CONVERT() Funktion

Das CONVERT() Die Funktion macht dasselbe wie CAST() , außer mit einer etwas anderen Syntax:

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

Ergebnis:

275.00

Verwenden Sie einen arithmetischen Operator

Eine andere Möglichkeit ist die Verwendung eines arithmetischen Operators, wie z. B. eines Multiplikationsoperators:

SELECT 275 * 1.00;

Ergebnis:

275.00

In diesem Beispiel multiplizieren wir die Ganzzahl mit 1.00 .

Immer wenn ein Operator in SQL Server Ausdrücke unterschiedlicher Datentypen kombiniert, wird der Datentyp mit der niedrigeren Priorität zuerst in den Datentyp mit der höheren Priorität konvertiert. Die Operation gibt dann den Datentyp des Arguments mit der höheren Priorität zurück.

In SQL Server hat die Dezimalzahl eine höhere Priorität als die Ganzzahl.

Indem wir es mit 1,00 multiplizieren, ändern wir den ganzzahligen Teil nicht. Wir wandeln es einfach in eine Dezimalzahl um und addieren den Bruchteil.

Unter Vorrang von Datentypen in SQL Server finden Sie eine Liste der Datentypen in der Reihenfolge ihrer Priorität.