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

So konvertieren Sie eine ganze Zahl in eine Dezimalzahl in SQL Server

Problem:

Sie möchten einen ganzzahligen Wert in SQL Server in einen DECIMAL-Datentyp konvertieren.

Konvertieren wir eine ganze Zahl in den DECIMAL-Datentyp.

Lösung 1:

Wir verwenden CAST() Funktion. Hier ist die Abfrage, die Sie schreiben würden:

SELECT 
  CAST(12 AS DECIMAL(7,2) ) AS decimal_value
;

Hier ist das Ergebnis:

decimal_value
12.00

Diskussion:

Verwenden Sie den CAST() Funktion zum Konvertieren einer Ganzzahl in einen DECIMAL-Datentyp. Diese Funktion nimmt als Argument einen Ausdruck oder einen Spaltennamen, gefolgt vom Schlüsselwort AS und dem neuen Datentyp. In unserem Beispiel haben wir eine Ganzzahl (12) in einen Dezimalwert (12,00) konvertiert. Der angezeigte Wert hat zwei Dezimalstellen, weil DECIMAL in CAST() hat zwei Dezimalstellen.

SQL Server bietet eine weitere Option:CONVERT() . Dies ist keine SQL-Standardfunktion wie CAST() . Die folgende Abfrage zeigt seine Verwendung.

Lösung 2:

Hier ist eine weitere Möglichkeit, eine Ganzzahl in einen DECIMAL-Typ umzuwandeln:

SELECT 
  CONVERT(DECIMAL(7,2),12 ) AS decimal_value
;

Diese Abfrage erzeugt das gleiche Ergebnis wie CAST() , akzeptiert aber zwei obligatorische Argumente:den Datentyp und einen zu konvertierenden Ausdruck, Wert oder Spaltennamen. Ein optionaler dritter Parameter gibt an, wie der Wert in seinem neuen Typ formatiert werden soll. Lesen Sie mehr über die Formatierung von Werten in der offiziellen SQL Server-Dokumentation.

Wenn Sie den Wert nicht in einem bestimmten Format zurückgeben müssen, verwenden Sie CAST() .