I MariaDB, ABS() är en inbyggd numerisk funktion som returnerar det absoluta (icke-negativa) värdet av dess argument.
Syntax
Syntaxen ser ut så här:
ABS(X)
Där X är numret i fråga. Om X är inte ett tal, det konverteras till en numerisk typ.
Exempel
Här är ett exempel:
SELECT ABS(300); Resultat:
+----------+ | ABS(300) | +----------+ | 300 | +----------+
Vi får samma resultat om talet är negativt:
SELECT ABS(-300); Resultat:
+-----------+ | ABS(-300) | +-----------+ | 300 | +-----------+
Icke-numeriskt argument
Om argumentet inte är ett tal, konverteras det till en numerisk typ.
Exempel:
SELECT ABS(DATE '2020-12-10'); Resultat:
+------------------------+ | ABS(DATE '2020-12-10') | +------------------------+ | 20201210 | +------------------------+
Detta beror dock på argumentet/kontexten.
Det här är vad som händer när jag utelämnar DATE nyckelord:
SELECT ABS('2020-12-10'); Resultat:
+-------------------+
| ABS('2020-12-10') |
+-------------------+
| 2020 |
+-------------------+
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: '2020-12-10' | +---------+------+------------------------------------------------+
Argument saknas
Anropar ABS() utan argument resulterar i ett fel:
SELECT ABS(); Resultat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'ABS'