sql >> Databasteknik >  >> RDS >> Sqlserver

Hur man konverterar ett heltal till en decimal i SQL Server

Problem:

Du vill konvertera ett heltalsvärde till en DECIMAL datatyp i SQL Server.

Låt oss konvertera ett heltal till datatypen DECIMAL.

Lösning 1:

Vi använder CAST() fungera. Här är frågan du skulle skriva:

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

Här är resultatet:

decimalvärde
12.00

Diskussion:

Använd CAST() funktion för att konvertera ett heltal till en DECIMAL datatyp. Den här funktionen tar ett uttryck eller ett kolumnnamn som argument, följt av nyckelordet AS och den nya datatypen. I vårt exempel konverterade vi ett heltal (12) till ett decimalvärde (12,00). Det visade värdet har två decimaler eftersom DECIMAL i CAST() har två decimaler.

SQL Server tillhandahåller ett annat alternativ:CONVERT() . Detta är inte en SQL Standard-funktion som CAST() . Frågan nedan visar dess användning.

Lösning 2:

Här är ett annat sätt att konvertera ett heltal till en DECIMAL-typ:

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

Den här frågan ger samma resultat som CAST() , men kräver två obligatoriska argument:datatypen och ett uttryck, värde eller kolumnnamn att konvertera. En valfri tredje parameter anger hur värdet ska formateras i sin nya typ. Läs mer om värdeformatering i den officiella SQL Server-dokumentationen.

Om du inte behöver returnera värdet i ett visst format, använd CAST() .


  1. Oracle Database BLOB till InputStream i Java?

  2. SQL-funktion mycket långsam jämfört med fråga utan funktionsomslag

  3. Prestanda för sekvenser och serier i Postgres-XL

  4. sql-satsfel:kolumn .. finns inte