Функция 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;