Problem:
Du vil afrunde et tal til et bestemt antal decimaler.
Eksempel:
Vores database har en tabel med navnet product med data i følgende kolonner:id , name , og price_net .
| id | navn | nettopris |
|---|---|---|
| 1 | brød | 2.34 |
| 2 | croissant | 1.22 |
| 3 | rulle | 0,68 |
Antag, at der er en afgift på 24 % på hvert produkt, og du vil gerne beregne bruttoprisen for hver vare (dvs. efter skat) og afrunde værdien til to decimaler.
Løsning:
SELECT id, ROUND( price_net*1.24 , 2 ) as price_gross FROM product;
Denne forespørgsel returnerer bruttoprisen afrundet til to decimaler:
| id | bruttopris |
|---|---|
| 1 | 2,90 |
| 2 | 1,51 |
| 3 | 0,84 |
Diskussion:
Hvis du gerne vil afrunde et flydende decimaltal til et bestemt antal decimaler i SQL, skal du bruge RUND-funktionen. Det første argument for denne funktion er den kolonne, hvis værdier du vil afrunde; det andet argument er valgfrit og angiver antallet af steder, som du vil runde til. Som standard, hvis du ikke angiver det andet argument, afrundes funktionen til nærmeste heltal.
I dette eksempel vil vi ikke angive antallet af steder, som vi vil runde kolonnen til:
SELECT id, ROUND(price_net*1.24) as price_gross FROM product;
Og her er det tilsvarende resultat:
| id | bruttopris |
|---|---|
| 1 | 3 |
| 2 | 2 |
| 3 | 1 |