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 |