sql >> Database >  >> RDS >> Sqlserver

Hoe een geheel getal naar een decimaal te converteren in SQL Server

Probleem:

U wilt een geheel getal converteren naar een DECIMAAL gegevenstype in SQL Server.

Laten we een geheel getal converteren naar het gegevenstype DECIMAL.

Oplossing 1:

We gebruiken de CAST() functie. Dit is de vraag die je zou schrijven:

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

Hier is het resultaat:

decimale_waarde
12:00

Discussie:

Gebruik de CAST() functie om een ​​geheel getal om te zetten in een DECIMAAL gegevenstype. Deze functie heeft een uitdrukking of een kolomnaam als argument, gevolgd door het sleutelwoord AS en het nieuwe gegevenstype. In ons voorbeeld hebben we een geheel getal (12) geconverteerd naar een decimale waarde (12,00). De weergegeven waarde heeft twee decimalen omdat DECIMAAL in CAST() heeft twee decimalen.

SQL Server biedt een andere optie:CONVERT() . Dit is geen SQL Standard-functie zoals CAST() . De onderstaande query toont het gebruik ervan.

Oplossing 2:

Hier is nog een manier om een ​​geheel getal om te zetten in een DECIMAAL type:

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

Deze zoekopdracht levert hetzelfde resultaat op als CAST() , maar er zijn twee verplichte argumenten voor nodig:het gegevenstype en een uitdrukking, waarde of kolomnaam om te converteren. Een optionele derde parameter specificeert hoe de waarde moet worden opgemaakt in het nieuwe type. Lees meer over waardeopmaak in de officiële SQL Server-documentatie.

Als u de waarde niet in een bepaald formaat hoeft te retourneren, gebruikt u CAST() .


  1. Hoe Microsoft SQL Server-fout 926 te repareren? - Opgelost

  2. COS() Functie in Oracle

  3. PostgreSQL Connection Pooling:Deel 2 – PgBouncer

  4. SQL CASE-instructie