sql >> Databasteknik >  >> RDS >> MariaDB

Hur FLOOR() fungerar i MariaDB

I MariaDB, FLOOR() är en inbyggd numerisk funktion som returnerar det största heltalsvärdet som inte är större än dess argument.

Syntax

Syntaxen ser ut så här:

FLOOR(X)

Där X är värdet att tillämpa operationen på.

Exempel

Här är ett exempel:

SELECT FLOOR(3.6789);

Resultat:

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

Att skicka ett negativt värde ger följande resultat:

SELECT FLOOR(-3.6789);

Resultat:

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

Jämfört med ROUND()

FLOOR() funktionen skiljer sig från ROUND() fungera. ROUND() funktion skulle avrunda talet uppåt i vissa fall och nedåt i andra. FLOOR() funktion, å andra sidan, returnerar alltid det största heltalsvärdet som inte är större än dess argument.

SELECT 
    FLOOR(3.6789),
    ROUND(3.6789);

Resultat:

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

Även ROUND() tillåter oss att ange antalet decimaler som ska avrundas till:

SELECT 
    FLOOR(3.6789),
    ROUND(3.6789, 2);

Resultat:

+---------------+------------------+
| FLOOR(3.6789) | ROUND(3.6789, 2) |
+---------------+------------------+
|             3 |             3.68 |
+---------------+------------------+

FLOOR() skiljer sig också från TRUNCATE() funktion, som helt enkelt trunkerar talet till en given decimal.

Icke-numeriska argument

Det här är vad som händer när vi tillhandahåller ett icke-numeriskt argument:

SELECT FLOOR('Ten');

Resultat:

+--------------+
| FLOOR('Ten') |
+--------------+
|            0 |
+--------------+
1 row in set, 1 warning (0.000 sec)

Låt oss kolla varningen:

SHOW WARNINGS;

Resultat:

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

Argument saknas

Anropar FLOOR() utan argument resulterar i ett fel:

SELECT FLOOR();

Resultat:

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

  1. Skapa pivotvy i SQL från en SQL-tabell

  2. SUM() Funktion i PostgreSQL

  3. Tablix:Upprepa rubrikrader på varje sida som inte fungerar - Report Builder 3.0

  4. Java:Anropar en lagrad procedur i en Oracle-databas