IIF SQL: условные операторы и функции в языке SQL
IIF (Immediate If) - это функция, которая используется в SQL для выполнения условных операций. Она позволяет нам выбрать одно из двух значений в зависимости от условия, и результат этого выбора может быть использован в запросах и выражениях.
Синтаксис функции IIF выглядит следующим образом:
IIF(condition, value_if_true, value_if_false)
Где:
condition- условие, которое проверяется.value_if_true- значение, которое будет возвращено, если условие истинно.value_if_false- значение, которое будет возвращено, если условие ложно.
Давайте рассмотрим несколько примеров, чтобы лучше понять, как использовать функцию IIF.
Пример 1:
Предположим, у нас есть таблица "students" со следующими столбцами: "name", "age" и "gender", и мы хотим выбрать всех студентов, чей возраст больше 20 лет и при этом отобразить их пол как "Мужчина" или "Женщина":
SELECT name, IIF(gender = 'M', 'Мужчина', 'Женщина') as gender, age
FROM students
WHERE age > 20
В этом примере мы используем функцию IIF в выражении выборки, чтобы в зависимости от значения столбца "gender" возвращать соответствующую строку: "Мужчина", если значение 'M', и "Женщина", если значение отличается от 'M'.
Пример 2:
Предположим, у нас есть таблица "products" со следующими столбцами: "name", "price", "discount" и "is_available", и мы хотим рассчитать финальную цену продукта с учетом скидки, только если продукт доступен:
SELECT name, price, discount, IIF(is_available, price * (1 - discount), price) as final_price
FROM products
В этом примере мы используем функцию IIF в выражении выборки, чтобы в зависимости от значения столбца "is_available" применять скидку к цене или оставлять цену без изменений.
Пример 3:
Предположим, у нас есть таблица "orders" со столбцами "product_name", "quantity" и "is_delivered", и мы хотим рассчитать итоговую стоимость заказа с учетом количества и статуса доставки:
SELECT product_name, quantity, IIF(is_delivered, quantity * price, 0) as total_cost
FROM orders
JOIN products ON orders.product_id = products.id
В этом примере мы используем функцию IIF в выражении выборки, чтобы в зависимости от значения столбца "is_delivered" рассчитать итоговую стоимость заказа, умножив количество на цену, или вернуть 0, если доставка не была выполнена.
Это всего лишь несколько примеров использования функции IIF в SQL. Тем не менее, она может быть очень полезной при выполнении условных операций и выборе значений на основе определенных условий.