sql >> Databáze >  >> RDS >> MariaDB

Jak ROUND() funguje v MariaDB

V MariaDB, ROUND() je vestavěná numerická funkce, která zaokrouhluje svůj argument na daný počet desetinných míst.

Syntaxe

Funkci lze použít dvěma následujícími způsoby:

ROUND(X)
ROUND(X,D)

Kde X je hodnota, která se má zaokrouhlit, a D je volitelný argument, který určuje počet desetinných míst, na který se má zaokrouhlit.

Příklad

Zde je příklad:

SELECT ROUND(7.5);

Výsledek:

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

Předání záporné hodnoty vede k následujícímu výsledku:

SELECT ROUND(-7.5);

Výsledek:

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

Zadejte desetinná místa

Ve výchozím nastavení ROUND() funkce zaokrouhlí hodnotu na nula desetinných míst. Můžeme zadat počet desetinných míst, na která se má hodnota zaokrouhlit, předáním druhého argumentu.

Příklad:

SELECT ROUND(7.5164, 2);

Výsledek:

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

Záporná desetinná místa

Druhý argument může být v případě potřeby záporná hodnota. Předání záporné hodnoty způsobí, že číslice budou vlevo desetinného místa na nulu.

Příklad:

SELECT ROUND(3724.51, -2);

Výsledek:

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

Ve srovnání s FLOOR()

ROUND() funkce se liší od funkce FLOOR() funkce. ROUND() funkce v některých případech zaokrouhlí číslo nahoru a v jiných dolů. FLOOR() Funkce na druhou stranu vždy vrací největší celočíselnou hodnotu, která není větší než její argument.

Zde je srovnání, které tento rozdíl demonstruje:

SELECT 
    FLOOR(3.6789),
    ROUND(3.6789);

Výsledek:

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

Také FLOOR() nepřijímá druhý argument jako ROUND() ano.

ROUND() se také liší od TRUNCATE() funkce, která jednoduše zkrátí číslo na dané desetinné místo bez jakéhokoli zaokrouhlování.

Nečíselné argumenty

Když poskytneme nečíselný argument, stane se toto:

SELECT ROUND('Ten');

Výsledek:

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

Podívejme se na varování:

SHOW WARNINGS;

Výsledek:

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

Chybí argumenty

Volání ROUND() bez argumentu vede k chybě:

SELECT ROUND();

Výsledek:

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

  1. Úvod do zpracování výjimek PL/SQL v databázi Oracle

  2. 5 způsobů, jak implementovat vyhledávání bez rozlišení velkých a malých písmen v SQLite s plnou podporou Unicode

  3. Aktualizace profilu pošty databáze v SQL Server (T-SQL)

  4. Použité příkazy SELECT mají jiný počet sloupců (REDUX!!)