Dans MariaDB, ABS() est une fonction numérique intégrée qui renvoie la valeur absolue (non négative) de son argument.
Syntaxe
La syntaxe ressemble à ceci :
ABS(X)
Où X est le nombre en question. Si X n'est pas un nombre, il est converti en un type numérique.
Exemple
Voici un exemple :
SELECT ABS(300); Résultat :
+----------+ | ABS(300) | +----------+ | 300 | +----------+
On obtient le même résultat si le nombre est négatif :
SELECT ABS(-300); Résultat :
+-----------+ | ABS(-300) | +-----------+ | 300 | +-----------+
Argument non numérique
Si l'argument n'est pas un nombre, il est converti en un type numérique.
Exemple :
SELECT ABS(DATE '2020-12-10'); Résultat :
+------------------------+ | ABS(DATE '2020-12-10') | +------------------------+ | 20201210 | +------------------------+
Cependant, cela dépend de l'argument/du contexte.
Voici ce qui se passe lorsque j'omets le DATE mot-clé :
SELECT ABS('2020-12-10'); Résultat :
+-------------------+
| ABS('2020-12-10') |
+-------------------+
| 2020 |
+-------------------+
1 row in set, 1 warning (0.000 sec) Vérifions l'avertissement :
SHOW WARNINGS; Résultat :
+---------+------+------------------------------------------------+ | Level | Code | Message | +---------+------+------------------------------------------------+ | Warning | 1292 | Truncated incorrect DOUBLE value: '2020-12-10' | +---------+------+------------------------------------------------+
Argument manquant
Appel de ABS() sans argument génère une erreur :
SELECT ABS(); Résultat :
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'ABS'