Функция IF
Что такое функция if: определение, основные принципы, примеры и практические советы. Изучайте SQL для тестировщиков с подробными объяснениями для начинающих специалистов.
Функция IF.
IF(условное_выражение, значение_1, значение_2);
Если условное выражение, передаваемое в качестве первого аргумента в функцию IF, истинно, функция вернёт значение второго аргумента значение_1, иначе возвращается значение третьего аргумента значение_2.
Функции IFNULL и NULLIF.
Помимо функции IF, в SQL также есть более простые, но менее универсальные функции IFNULL и NULLIF, направленные на обработку NULL значений.
Синтаксис IFNULL:
IFNULL(значение, альтернативное_значение);
Синтаксис NULLIF:
NULLIF(значение_1, значение_2);
Практические примеры:
-- Пример IF
SELECT name,
IF(price > 100, 'Дорогой', 'Доступный') AS price_category
FROM products;
-- Пример IFNULL - замена NULL значений
SELECT name,
IFNULL(description, 'Описание отсутствует') AS description
FROM products;
-- Пример NULLIF - возвращает NULL если значения равны
SELECT name,
NULLIF(discount, 0) AS actual_discount
FROM products;
-- Комбинированное использование
SELECT name,
IF(IFNULL(stock_quantity, 0) > 0, 'В наличии', 'Нет в наличии') AS availability,
NULLIF(IFNULL(discount, 0), 0) AS discount_percent
FROM products;
-- Пример с вычислениями
SELECT order_id,
total_amount,
IF(total_amount > 1000,
total_amount * 0.1,
0) AS bonus_points,
IFNULL(shipping_cost, 0) AS shipping
FROM orders;
-- Пример NULLIF для избежания деления на ноль
SELECT product_id,
total_sales,
returns,
total_sales / NULLIF(returns, 0) AS return_ratio
FROM product_stats;