В 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'