sql >> Database teknologi >  >> RDS >> Sqlserver

3 måder at konvertere et heltal til decimal i SQL Server

Her er tre muligheder for at konvertere et heltal til en decimalværdi i SQL Server ved hjælp af T-SQL.

CAST() Funktion

CAST() funktion konverterer et udtryk af en datatype til en anden:

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

Resultat:

275.00

I dette eksempel konverterede vi et heltal (275 ) til en decimalværdi med en præcision på 5 og med 2 decimaler.

Decimal og numerisk er synonymer og kan bruges i flæng. Derfor kan vi justere vores eksempel som følger for at opnå det samme resultat:

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

Resultat:

275.00

Det er vigtigt at huske at justere præcisionen efter behov:

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

Resultat:

18301275.00

Hvis præcisionsargumentet ikke er stort nok, opstår der en fejl:

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 det samme som CAST() , undtagen med en lidt anden syntaks:

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

Resultat:

275.00

Brug en aritmetisk operator

En anden mulighed er at bruge en aritmetisk operator, såsom en multiplikationsoperator:

SELECT 275 * 1.00;

Resultat:

275.00

I dette eksempel gange vi hele tallet med 1.00 .

I SQL Server, når en operatør kombinerer udtryk for forskellige datatyper, konverteres datatypen med den lavere prioritet først til datatypen med den højere prioritet. Operationen returnerer derefter datatypen for argumentet med den højeste prioritet.

I SQL Server har decimal en højere forrang for heltal.

Ved at gange det med 1,00 ændrer vi ikke heltalsdelen. Vi konverterer det simpelthen til decimal og tilføjer brøkdelen.

Se Datatypeprioritet i SQL Server for en liste over datatyper i rækkefølge.


  1. Spørgsmål og svar fra vores Parameter Sniffing-webinarserie

  2. org.hibernate.internal.util.config.ConfigurationException:Kunne ikke finde cfg.xml ressource [/HibernateTest/src/hibernate.cfg.xml]

  3. Oracle-forespørgsel til at finde alle forekomster af et tegn i en streng

  4. Introduktion til dataforbindelser og relationer