В MariaDB, ABS() е вградена числова функция, която връща абсолютната (неотрицателна) стойност на своя аргумент.
Синтаксис
Синтаксисът е така:
ABS(X)
Където X е въпросното число. Ако X не е число, то се преобразува в числов тип.
Пример
Ето един пример:
SELECT ABS(300); Резултат:
+----------+ | ABS(300) | +----------+ | 300 | +----------+
Получаваме същия резултат, ако числото е отрицателно:
SELECT ABS(-300); Резултат:
+-----------+ | ABS(-300) | +-----------+ | 300 | +-----------+
Нечислов аргумент
Ако аргументът не е число, той се преобразува в числов тип.
Пример:
SELECT ABS(DATE '2020-12-10'); Резултат:
+------------------------+ | ABS(DATE '2020-12-10') | +------------------------+ | 20201210 | +------------------------+
Това обаче зависи от аргумента/контекста.
Ето какво се случва, когато пропусна DATE ключова дума:
SELECT ABS('2020-12-10'); Резултат:
+-------------------+
| ABS('2020-12-10') |
+-------------------+
| 2020 |
+-------------------+
1 row in set, 1 warning (0.000 sec) Нека проверим предупреждението:
SHOW WARNINGS; Резултат:
+---------+------+------------------------------------------------+ | Level | Code | Message | +---------+------+------------------------------------------------+ | Warning | 1292 | Truncated incorrect DOUBLE value: '2020-12-10' | +---------+------+------------------------------------------------+
Липсващ аргумент
Извикване на ABS() без аргумент води до грешка:
SELECT ABS(); Резултат:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'ABS'