sql >> Database teknologi >  >> RDS >> Database

Sådan afrundes tal i SQL

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

  1. Er det muligt at udføre krydsdatabaseforespørgsler med PostgreSQL?

  2. Vælg erklæring for at returnere forældre og uendelige børn

  3. Forstå deadlocks i MySQL og PostgreSQL

  4. Sådan fungerer funktionen QUOTENAME() i SQL Server (T-SQL)