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

MOD

Повертає остачу від ділення одного числа на інше.

Синтаксис

MOD(<ділене>, <дільник>)
<ділене> % <дільник>

MOD(10, 3) дає 1, бо 10 = 3 · 3 + 1. Оператор % робить те саме. Найчастіше — щоб перевірити парність, взяти кожен другий рядок чи розкласти рядки по черзі на кілька груп.

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

orders

idcreated_atamount
12026-07-03 10:15:00120.50
22026-07-28 18:40:0080.25
32026-08-09 09:05:00199.99
42026-08-21 14:30:0045.00
52026-09-02 11:00:0064.75

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

Остача від ділення
SELECT MOD(10, 3) AS remainder,
10 % 3 AS with_operator;
remainderwith_operator
11
Парні номери замовлень
SELECT id,
MOD(id, 2) = 0 AS is_even
FROM orders;
idis_even
1false
2true
3false
4true
5false
Кожне друге замовлення
SELECT id, amount
FROM orders
WHERE MOD(id, 2) = 0;
idamount
280.25
445.00

Зверни увагу

Для від'ємного діленого остача теж від'ємна: MOD(-7, 3) дає -1, а не 2. Якщо потрібна завжди невід'ємна — MOD(MOD(-7, 3) + 3, 3).

Ділення на нуль — помилка: MOD(5, 0) скаже division by zero.

Працює й для дробових чисел: MOD(7.5, 2) дає 1.5.

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