I MariaDB, ABS()
er en indbygget numerisk funktion, der returnerer den absolutte (ikke-negative) værdi af sit argument.
Syntaks
Syntaksen ser sådan ud:
ABS(X)
Hvor X
er det pågældende nummer. Hvis X
er ikke et tal, det konverteres til en numerisk type.
Eksempel
Her er et eksempel:
SELECT ABS(300);
Resultat:
+----------+ | ABS(300) | +----------+ | 300 | +----------+
Vi får samme resultat, hvis tallet er negativt:
SELECT ABS(-300);
Resultat:
+-----------+ | ABS(-300) | +-----------+ | 300 | +-----------+
Ikke-numerisk argument
Hvis argumentet ikke er et tal, konverteres det til en numerisk type.
Eksempel:
SELECT ABS(DATE '2020-12-10');
Resultat:
+------------------------+ | ABS(DATE '2020-12-10') | +------------------------+ | 20201210 | +------------------------+
Dette afhænger dog af argumentet/konteksten.
Her er, hvad der sker, når jeg udelader DATE
søgeord:
SELECT ABS('2020-12-10');
Resultat:
+-------------------+ | ABS('2020-12-10') | +-------------------+ | 2020 | +-------------------+ 1 row in set, 1 warning (0.000 sec)
Lad os tjekke advarslen:
SHOW WARNINGS;
Resultat:
+---------+------+------------------------------------------------+ | Level | Code | Message | +---------+------+------------------------------------------------+ | Warning | 1292 | Truncated incorrect DOUBLE value: '2020-12-10' | +---------+------+------------------------------------------------+
Manglende argument
Kalder ABS()
uden et argument resulterer i en fejl:
SELECT ABS();
Resultat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'ABS'