sql >> Database >  >> RDS >> MariaDB

Hoe ROUND() werkt in MariaDB

In MariaDB, ROUND() is een ingebouwde numerieke functie die zijn argument afrondt op een bepaald aantal decimalen.

Syntaxis

De functie kan op de volgende twee manieren worden gebruikt:

ROUND(X)
ROUND(X,D)

Waar X is de waarde om af te ronden, en D is een optioneel argument dat het aantal decimalen aangeeft waarop het moet worden afgerond.

Voorbeeld

Hier is een voorbeeld:

SELECT ROUND(7.5);

Resultaat:

+------------+
| ROUND(7.5) |
+------------+
|          8 |
+------------+

Het doorgeven van een negatieve waarde levert het volgende resultaat op:

SELECT ROUND(-7.5);

Resultaat:

+-------------+
| ROUND(-7.5) |
+-------------+
|          -8 |
+-------------+

Geef decimalen op

Standaard is de ROUND() functie rondt de waarde af op nul decimalen. We kunnen het aantal decimalen opgeven waarop de waarde moet worden afgerond door een tweede argument door te geven.

Voorbeeld:

SELECT ROUND(7.5164, 2);

Resultaat:

+------------------+
| ROUND(7.5164, 2) |
+------------------+
|             7.52 |
+------------------+

Negatieve decimalen

Het tweede argument kan indien nodig een negatieve waarde zijn. Als u een negatieve waarde doorgeeft, worden de cijfers links van de decimale plaats om nul te worden.

Voorbeeld:

SELECT ROUND(3724.51, -2);

Resultaat:

+--------------------+
| ROUND(3724.51, -2) |
+--------------------+
|               3700 |
+--------------------+

Vergeleken met FLOOR()

De ROUND() functie is anders dan de FLOOR() functie. De ROUND() functie rondt het getal in sommige gevallen naar boven af ​​en in andere naar beneden. De FLOOR() functie, aan de andere kant, retourneert altijd de grootste gehele waarde die niet groter is dan zijn argument.

Hier is een vergelijking om dit verschil aan te tonen:

SELECT 
    FLOOR(3.6789),
    ROUND(3.6789);

Resultaat:

+---------------+---------------+
| FLOOR(3.6789) | ROUND(3.6789) |
+---------------+---------------+
|             3 |             4 |
+---------------+---------------+

Ook FLOOR() accepteert geen tweede argument zoals ROUND() doet.

ROUND() is ook anders dan de TRUNCATE() functie, die het getal eenvoudig afkapt tot een bepaald decimaalteken, zonder enige afronding.

Niet-numerieke argumenten

Dit is wat er gebeurt als we een niet-numeriek argument opgeven:

SELECT ROUND('Ten');

Resultaat:

+--------------+
| ROUND('Ten') |
+--------------+
|            0 |
+--------------+
1 row in set, 1 warning (0.028 sec)

Laten we de waarschuwing eens bekijken:

SHOW WARNINGS;

Resultaat:

+---------+------+-----------------------------------------+
| Level   | Code | Message                                 |
+---------+------+-----------------------------------------+
| Warning | 1292 | Truncated incorrect DOUBLE value: 'Ten' |
+---------+------+-----------------------------------------+

Ontbrekende argumenten

ROUND() . aanroepen zonder een argument resulteert in een fout:

SELECT ROUND();

Resultaat:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'ROUND'

  1. DATEDIFF() Voorbeelden in SQL Server

  2. MySQL-weergaven

  3. Vind records waar join niet bestaat

  4. Hoe kan ik een niet-null-beperking in Oracle laten vallen als ik de naam van de beperking niet weet?