Problem:
Du vil gerne konvertere en heltalsværdi til en DECIMAL datatype i SQL Server.
Lad os konvertere et heltal til datatypen DECIMAL.
Løsning 1:
Vi bruger CAST()
fungere. Her er den forespørgsel, du ville skrive:
SELECT CAST(12 AS DECIMAL(7,2) ) AS decimal_value ;
Her er resultatet:
decimal_værdi |
---|
12.00 |
Diskussion:
Brug CAST()
funktion til at konvertere et heltal til en DECIMAL datatype. Denne funktion tager et udtryk eller et kolonnenavn som argument, efterfulgt af nøgleordet AS og den nye datatype. I vores eksempel konverterede vi et heltal (12) til en decimalværdi (12,00). Den viste værdi har to decimaler, fordi DECIMAL i CAST()
har to decimaler.
SQL Server giver en anden mulighed:CONVERT()
. Dette er ikke en SQL Standard-funktion som CAST()
. Forespørgslen nedenfor viser dens brug.
Løsning 2:
Her er en anden måde at konvertere et heltal til en DECIMAL-type:
SELECT CONVERT(DECIMAL(7,2),12 ) AS decimal_value ;
Denne forespørgsel producerer det samme resultat som CAST()
, men kræver to obligatoriske argumenter:datatypen og et udtryk, værdi eller kolonnenavn for at konvertere. En valgfri tredje parameter angiver, hvordan værdien skal formateres i dens nye type. Læs mere om værdiformatering i den officielle SQL Server-dokumentation.
Hvis du ikke behøver at returnere værdien i et bestemt format, skal du bruge CAST()
.