Númerosestándar SQL

ABS

Devuelve el valor absoluto de un número: su valor sin signo.

Sintaxis

ABS(<número>)

Un número negativo pasa a ser positivo, y los positivos y el cero se quedan como están: ABS(-7) da 7. Lo más habitual es usarla para medir una distancia o una diferencia cuando la dirección da igual: cuánto se aleja un valor del objetivo, cuánto se desvía una previsión de la realidad.

Datos para los ejemplos

employees

namedepartmentsalarybonusphone
Emmabackend1200300+44 7700 900123
Liambackend1000NULLNULL
Oliviafrontend1350150+44 7700 900456
Noahfrontend950NULL+44 7700 900789
Sophiadesign1200200NULL

Estas tablas ya están creadas en el entorno de pruebas y los ejemplos de abajo las usan. ¿Quieres repetirlo en tu propia base de datos? Copia el SQL.

El valor absoluto de un número
SELECT ABS(-7) AS negative,
ABS(7) AS positive,
ABS(-2.5) AS fraction;
negativepositivefraction
772.5
Cuánto se aleja un salario de 1300
SELECT name, salary,
ABS(salary - 1300) AS distance_from_1300
FROM employees;
namesalarydistance_from_1300
Emma1200100
Liam1000300
Olivia135050
Noah950350
Sophia1200100
El salario más cercano a 1300
SELECT name, salary
FROM employees
ORDER BY ABS(salary - 1300)
LIMIT 1;
namesalary
Olivia1350

Ten en cuenta

Al ordenar por una diferencia, recuerda las distancias iguales: cualquiera de ellas puede quedar como «la más cercana». Añade un segundo campo a ORDER BY.

El valor absoluto elimina el signo, así que ya no se ve si el valor es mayor o menor. Si la dirección importa, mira la propia diferencia o SIGN.

El número más pequeño de un tipo no tiene pareja positiva: ABS((-2147483648)::integer) da integer out of range.

Funciones relacionadas

Más detalles en el curso