sql >> Databasteknik >  >> RDS >> Database

Hur man avrundar tal i SQL

Problem:

Du vill avrunda ett tal till ett visst antal decimaler.

Exempel:

Vår databas har en tabell som heter product med data i följande kolumner:id , name och price_net .

id namn nettopris
1 bröd 2.34
2 croissant 1.22
3 rulla 0,68

Anta att det finns en skatt på 24 % på varje produkt och att du vill beräkna bruttopriset för varje vara (dvs. efter skatt) och avrunda värdet till två decimaler.

Lösning:

SELECT id, ROUND( price_net*1.24 , 2 ) as price_gross
FROM product;

Denna fråga returnerar bruttopriset avrundat till två decimaler:

id bruttopris
1 2,90
2 1,51
3 0,84

Diskussion:

Om du vill runda av ett flyttal till ett visst antal decimaler i SQL, använd ROUND-funktionen. Det första argumentet för denna funktion är kolumnen vars värden du vill avrunda; det andra argumentet är valfritt och anger antalet platser som du vill avrunda. Som standard, om du inte anger det andra argumentet, avrundas funktionen till närmaste heltal.

I det här exemplet kommer vi inte att ange antalet platser som vi vill runda kolumnen till:

SELECT id, ROUND(price_net*1.24) as price_gross
FROM product;

Och här är motsvarande resultat:

id bruttopris
1 3
2 2
3 1

  1. Hur LTRIM() fungerar i MariaDB

  2. Hur språkinställningar kan påverka dina FORMAT()-resultat i SQL Server (T-SQL-exempel)

  3. Failover &Failback för PostgreSQL på Microsoft Azure

  4. Fästa tabell i Flash-cachen