Учебник по MySQL

ГЛАВНАЯ СТРАНИЦА MySQL Введение в MySQL СУРБД MySQL

MySQL SQL

MySQL SQL ВЫБРАТЬ MySQL MySQL ГДЕ MySQL И, ИЛИ, НЕ MySQL ЗАКАЗАТЬ ПО MySQL ВСТАВИТЬ В Значения MySQL NULL ОБНОВЛЕНИЕ MySQL MySQL УДАЛИТЬ ПРЕДЕЛ MySQL MySQL МИН и МАКС MySQL COUNT, СРЕДНЯЯ, СУММА MySQL НРАВИТСЯ Подстановочные знаки MySQL MySQL IN MySQL МЕЖДУ Псевдонимы MySQL MySQL присоединяется ВНУТРЕННЕЕ СОЕДИНЕНИЕ MySQL ЛЕВОЕ СОЕДИНЕНИЕ MySQL MySQL ПРАВОЕ СОЕДИНЕНИЕ ПЕРЕКРЕСТНОЕ СОЕДИНЕНИЕ MySQL Самостоятельное присоединение к MySQL СОЕДИНЕНИЕ MySQL MySQL СГРУППИРОВАТЬ ПО MySQL ИМЕЕТ MySQL СУЩЕСТВУЕТ MySQL ЛЮБОЙ, ВСЕ MySQL ВСТАВИТЬ ВЫБРАТЬ СЛУЧАЙ MySQL Нулевые функции MySQL Комментарии MySQL Операторы MySQL

База данных MySQL

MySQL Создать БД Удаление базы данных MySQL MySQL Создать таблицу Таблица удаления MySQL Таблица изменений MySQL Ограничения MySQL MySQL не нулевой Уникальный MySQL Первичный ключ MySQL Внешний ключ MySQL Проверка MySQL MySQL по умолчанию Индекс создания MySQL Автоматическое увеличение MySQL Даты MySQL Представления MySQL

Ссылки на MySQL

Типы данных MySQL Функции MySQL

Примеры MySQL

Примеры MySQL Викторина MySQL MySQL-упражнения

Заявление MySQL CASE


Заявление MySQL CASE

Оператор CASEпроходит через условия и возвращает значение при выполнении первого условия (как оператор if-then-else). Итак, как только условие истинно, оно прекращает чтение и возвращает результат. Если никакие условия не выполняются, возвращается значение в ELSEпредложении.

Если ELSEчасть отсутствует и ни одно условие не выполняется, возвращается NULL.

CASE-синтаксис

CASE
    WHEN condition1 THEN result1
    WHEN condition2 THEN result2
    WHEN conditionN THEN resultN
    ELSE result
END;

Демонстрационная база данных

Ниже приведен выбор из таблицы «OrderDetails» в образце базы данных «Борей»:

OrderDetailID OrderID ProductID Quantity
1 10248 11 12
2 10248 42 10
3 10248 72 5
4 10249 14 9
5 10249 51 40


Примеры CASE для MySQL

Следующий SQL выполняет условия и возвращает значение при выполнении первого условия:

Пример

SELECT OrderID, Quantity,
CASE
    WHEN Quantity > 30 THEN 'The quantity is greater than 30'
    WHEN Quantity = 30 THEN 'The quantity is 30'
    ELSE 'The quantity is under 30'
END AS QuantityText
FROM OrderDetails;

Следующий SQL упорядочит клиентов по городам. Однако, если City имеет значение NULL, то порядок по стране:

Пример

SELECT CustomerName, City, Country
FROM Customers
ORDER BY
(CASE
    WHEN City IS NULL THEN Country
    ELSE City
END);