sql >> Databasteknik >  >> RDS >> Sqlserver

3 sätt att konvertera ett heltal till decimal i SQL Server

Här är tre alternativ för att konvertera ett heltal till ett decimalvärde i SQL Server med T-SQL.

CAST() Funktion

CAST() funktion konverterar ett uttryck av en datatyp till en annan:

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

Resultat:

275.00

I det här exemplet konverterade vi ett heltal (275 ) till ett decimalvärde med precisionen 5 och med 2 decimaler.

Decimal och numerisk är synonymer och kan användas omväxlande. Därför kan vi justera vårt exempel enligt följande för att uppnå samma resultat:

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

Resultat:

275.00

Det är viktigt att komma ihåg att justera precisionen efter behov:

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

Resultat:

18301275.00

Om precisionsargumentet inte är tillräckligt stort uppstår ett fel:

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

Resultat:

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

CONVERT() Funktion

CONVERT() funktion gör samma sak som CAST() , förutom med en något annan syntax:

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

Resultat:

275.00

Använd en aritmetisk operator

Ett annat alternativ är att använda en aritmetisk operator, till exempel en multiplikationsoperator:

SELECT 275 * 1.00;

Resultat:

275.00

I det här exemplet multiplicerar vi heltal med 1.00 .

I SQL Server, närhelst en operatör kombinerar uttryck av olika datatyper, konverteras datatypen med lägre prioritet först till datatypen med högre prioritet. Operationen returnerar sedan datatypen för argumentet med högre prioritet.

I SQL Server har decimal en högre prioritet till heltal.

Genom att multiplicera det med 1,00 ändrar vi inte heltalsdelen. Vi konverterar det helt enkelt till decimaler och lägger till bråkdelen.

Se Datatypsprioritet i SQL Server för en lista över datatyper i prioritetsordning.


  1. Lista över NLS-parametrar i Oracle Database

  2. 5 sätt att hitta rader som innehåller versaler i SQL Server

  3. Enkla SQL Server-funktioner för att lösa verkliga problem

  4. Fråga två tabeller från olika scheman