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'