ABS() în MySQL

Funcții matematice MySQL 5.0+

Valoarea absolută a unui număr (fără semn).

Sintaxă
ABS(numar)

Ce face ABS()

ABS() transformă numerele negative în pozitive și lasă neschimbate numerele pozitive. Este folosită la diferențe în care nu contează direcția.

Parametri

Parametru Descriere
numar Numărul.

Ce returnează

Valoarea absolută.

Exemple

Exemplele de pe această pagină pornesc de la datele de mai jos. Rulează mai întâi acest cod, apoi exemplul.

CREATE TABLE produse (
  id INT PRIMARY KEY,
  nume VARCHAR(30),
  pret DECIMAL(10,2),
  stoc INT,
  reducere INT
);

INSERT INTO produse VALUES
  (1, 'Laptop', 3499.90, 4, NULL),
  (2, 'Mouse', 79.50, 25, 10),
  (3, 'Birou', 899.00, 0, 15),
  (4, 'Scaun', 649.99, 7, NULL),
  (5, 'Monitor', 1199.00, 3, 5);

Exemplul 1: Valori absolute

SELECT ABS(-3) AS a, ABS(3) AS b, ABS(-2.75) AS c;

Rezultat

+---+---+------+
| a | b | c    |
+---+---+------+
| 3 | 3 | 2.75 |
+---+---+------+

Exemplul 2: Produsul cu prețul cel mai apropiat de 1000 lei

SELECT nume, pret, ABS(pret - 1000) AS distanta
FROM produse
ORDER BY distanta
LIMIT 1;

Rezultat

+-------+--------+----------+
| nume  | pret   | distanta |
+-------+--------+----------+
| Birou | 899.00 |   101.00 |
+-------+--------+----------+

Greșeli frecvente

  • Folosești ABS() pe tipuri UNSIGNED obținute din scăderi. Scăderea poate da eroare de depășire înainte ca ABS() să ajungă la ea.

Comenzi înrudite

  • SIGN(): Semnul unui număr: -1 (negativ), 0 sau 1 (pozitiv).
  • ROUND(): Rotunjește un număr la un număr de zecimale (sau la zeci, sute, cu valori negative).