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 |