W MariaDB, ABS()
jest wbudowaną funkcją numeryczną, która zwraca bezwzględną (nieujemną) wartość swojego argumentu.
Składnia
Składnia wygląda tak:
ABS(X)
Gdzie X
to numer, o który chodzi. Jeśli X
nie jest liczbą, jest konwertowana na typ liczbowy.
Przykład
Oto przykład:
SELECT ABS(300);
Wynik:
+----------+ | ABS(300) | +----------+ | 300 | +----------+
Ten sam wynik otrzymujemy, jeśli liczba jest ujemna:
SELECT ABS(-300);
Wynik:
+-----------+ | ABS(-300) | +-----------+ | 300 | +-----------+
Argument nieliczbowy
Jeśli argument nie jest liczbą, jest konwertowany na typ liczbowy.
Przykład:
SELECT ABS(DATE '2020-12-10');
Wynik:
+------------------------+ | ABS(DATE '2020-12-10') | +------------------------+ | 20201210 | +------------------------+
Zależy to jednak od argumentu/kontekstu.
Oto, co się stanie, gdy pominę DATE
słowo kluczowe:
SELECT ABS('2020-12-10');
Wynik:
+-------------------+ | ABS('2020-12-10') | +-------------------+ | 2020 | +-------------------+ 1 row in set, 1 warning (0.000 sec)
Sprawdźmy ostrzeżenie:
SHOW WARNINGS;
Wynik:
+---------+------+------------------------------------------------+ | Level | Code | Message | +---------+------+------------------------------------------------+ | Warning | 1292 | Truncated incorrect DOUBLE value: '2020-12-10' | +---------+------+------------------------------------------------+
Brakujący argument
Wywołanie ABS()
bez argumentu powoduje błąd:
SELECT ABS();
Wynik:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'ABS'