Числастандарт SQL

ABS

Повертає модуль числа — його значення без знака.

Синтаксис

ABS(<число>)

Від'ємне число стає додатним, а додатне й нуль лишаються як є: ABS(-7) дає 7. Найчастіше — щоб порахувати відстань чи різницю, коли не важливо, в який бік: наскільки значення далеке від цілі, наскільки прогноз розійшовся з фактом.

Дані для прикладів

employees

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

Ці таблиці вже створено в пісочниці — приклади нижче працюють із ними. Хочеш повторити у своїй базі — скопіюй SQL.

Модуль числа
SELECT ABS(-7) AS negative,
ABS(7) AS positive,
ABS(-2.5) AS fraction;
negativepositivefraction
772.5
Наскільки зарплата далека від 1300
SELECT name, salary,
ABS(salary - 1300) AS distance_from_1300
FROM employees;
namesalarydistance_from_1300
Emma1200100
Liam1000300
Olivia135050
Noah950350
Sophia1200100
Найближча до 1300 зарплата
SELECT name, salary
FROM employees
ORDER BY ABS(salary - 1300)
LIMIT 1;
namesalary
Olivia1350

Зверни увагу

Сортуючи за різницею, пам'ятай про рівні відстані: «найближчим» стане будь-хто з них. Додай друге поле в ORDER BY.

Модуль прибирає знак, тож уже не видно, більше значення чи менше. Якщо напрям важливий, дивись на саму різницю або на SIGN.

Найменше число типу не має додатної пари: ABS((-2147483648)::integer) дасть integer out of range.

Схожі функції

Детально в курсі