MariaDB
 sql >> Datenbank >  >> RDS >> MariaDB

Wie ABS() in MariaDB funktioniert

In MariaDB ABS() ist eine eingebaute numerische Funktion, die den absoluten (nicht negativen) Wert ihres Arguments zurückgibt.

Syntax

Die Syntax lautet wie folgt:

ABS(X)

Wobei X ist die betreffende Nummer. Wenn X keine Zahl ist, wird sie in einen numerischen Typ umgewandelt.

Beispiel

Hier ist ein Beispiel:

SELECT ABS(300);

Ergebnis:

+----------+
| ABS(300) |
+----------+
|      300 |
+----------+

Dasselbe Ergebnis erhalten wir, wenn die Zahl negativ ist:

SELECT ABS(-300);

Ergebnis:

+-----------+
| ABS(-300) |
+-----------+
|       300 |
+-----------+

Nicht numerisches Argument

Wenn das Argument keine Zahl ist, wird es in einen numerischen Typ umgewandelt.

Beispiel:

SELECT ABS(DATE '2020-12-10');

Ergebnis:

+------------------------+
| ABS(DATE '2020-12-10') |
+------------------------+
|               20201210 |
+------------------------+

Dies hängt jedoch vom Argument/Kontext ab.

Folgendes passiert, wenn ich das DATE weglasse Stichwort:

SELECT ABS('2020-12-10');

Ergebnis:

+-------------------+
| ABS('2020-12-10') |
+-------------------+
|              2020 |
+-------------------+
1 row in set, 1 warning (0.000 sec)

Sehen wir uns die Warnung an:

SHOW WARNINGS;

Ergebnis:

+---------+------+------------------------------------------------+
| Level   | Code | Message                                        |
+---------+------+------------------------------------------------+
| Warning | 1292 | Truncated incorrect DOUBLE value: '2020-12-10' |
+---------+------+------------------------------------------------+

Fehlendes Argument

Aufruf von ABS() ohne Argument führt zu einem Fehler:

SELECT ABS();

Ergebnis:

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