MySQL CASE оператор
Оператор CASE
В MySQL оператор CASE используется для применения сложной условной конструкции в хранимой программе.
Синтаксис:
Значение CASE WHEN [сравнение_значения] THEN результат [КОГДА [сравнивать_значение], ТО результат ...] [Иначе результат] КОНЕЦ
ИЛИ ЖЕ
СЛУЧАЙ, КОГДА [условие], ТО результат [КОГДА [условие] ТОГДА результат ...] [Иначе результат] КОНЕЦ
- Первый синтаксис возвращает результат, где значение = сравнить_значение.
- Второй синтаксис возвращает результат для первого условия, которое является истинным.
- Список соответствующих операторов SQL будет выполняться, когда условие поиска оценивается как true.
- Список операторов в части ELSE будет выполнен, если не найдено ни одного условия поиска.
- Если в ELSE-части не найдено подходящего значения, возвращается NULL.
- Каждый список операторов может содержать один или несколько операторов, и пустой список операторов не допускается.
Версия MySQL: 5.6
Тип возврата выражения CASE является совместимым агрегированным типом всех возвращаемых значений и зависит от контекста, в котором оно используется. Если используется в числовом контексте, результат возвращается в виде десятичного, действительного или целочисленного значения. Если используется в строковом контексте, результат возвращается в виде строки.
Примечание . Синтаксис выражения CASE, показанного здесь, немного отличается от синтаксиса оператора SQL CASE, CASE Syntax , для использования внутри хранимых программ. Оператор CASE не может иметь предложение ELSE NULL, и он заканчивается END CASE вместо END.
Пример: оператор MySQL CASE
В следующем утверждении CASE равен 1, поэтому возвращается «это первый случай».
Код:
SELECT CASE 1 WHEN 1 THEN 'this is case one'
WHEN 2 THEN 'this is case two'
ELSE 'this is not in the case'
END as 'how to execute case statement';
Пример вывода:
mysql> SELECT CASE 1 WHEN 1 THEN 'это первый случай' -> КОГДА 2 ТОГДА "это второй случай" -> Иначе «это не так» -> END как «как выполнить инструкцию case»; + ------------------------------- + | как выполнить case case | + ------------------------------- + | это первый случай | + ------------------------------- + 1 ряд в наборе (0,00 сек)
Пример: оператор MySQL CASE, когда не совпадает
В следующем утверждении CASE равен 4, поэтому он возвращает часть ELSE, т.е. «это не так».
Код:
SELECT CASE 4 WHEN 1 THEN 'this is case one'
WHEN 2 THEN 'this is case two'
ELSE 'this is not in the case'
END as 'how to execute case statement';
Пример вывода:
mysql> SELECT CASE 4 WHEN 1 THEN 'это первый случай' -> КОГДА 2 ТОГДА "это второй случай" -> Иначе «это не так» -> END как «как выполнить инструкцию case»; + ------------------------------- + | как выполнить case case | + ------------------------------- + | это не в случае | + ------------------------------- + 1 ряд в наборе (0,00 сек)
Пример: оператор MySQL CASE при сопоставлении
В следующем утверждении CASE равен 2, поэтому он возвращает «это случай два».
Код:
SELECT CASE 2 WHEN 1 THEN 'this is case one'
WHEN 2 THEN 'this is case two'
ELSE 'this is not in the case'
END as 'how to execute case statement';
Пример вывода:
mysql> SELECT CASE 2 WHEN 1 THEN 'это первый случай' -> КОГДА 2 ТОГДА "это второй случай" -> Иначе «это не так» -> END как «как выполнить инструкцию case»; + ------------------------------- + | как выполнить case case | + ------------------------------- + | это второй случай | + ------------------------------- + 1 ряд в наборе (0,00 сек)
Пример: оператор MySQL CASE, использующий оператор больше чем
В следующем примере, поскольку условие 2> 3 имеет значение FALSE, оно возвращает часть ELSE, то есть «this is false».
Код:
SELECT CASE WHEN 2>3 THEN 'this is true'
ELSE 'this is false' END;
Пример вывода:
mysql> SELECT CASE WHEN 2> 3 THEN 'это правда' ELSE 'это ложь' END; + ------------------------------------------------- ------------ + | СЛУЧАЙ, КОГДА 2> 3 ТОГДА 'это верно' ЛИБО 'это ложно' КОНЕЦ | + ------------------------------------------------- ------------ + | это ложь | + ------------------------------------------------- ------------ + 1 ряд в наборе (0,00 сек)
Пример: оператор MySQL CASE с оператором меньше чем
В следующем примере условие 2 <3 имеет значение ИСТИНА, поэтому оно возвращает «это правда».
Код:
SELECT CASE WHEN 2< 3 THEN 'this is true'
ELSE 'this is false' END;
Пример вывода:
mysql> ВЫБЕРИТЕ СЛУЧАЙ, КОГДА 2 <3 ТОГДА «это правда», ИЛИ «это ложь» КОНЕЦ; + ------------------------------------------------- ------------ + | СЛУЧАЙ, КОГДА 2 <3 ТОГДА «это правда», ЛИБО «это ложь» КОНЕЦ | + ------------------------------------------------- ------------ + | это правда | + ------------------------------------------------- ------------ + 1 ряд в наборе (0,00 сек)
Пример: оператор MySQL CASE без соответствия
В следующем примере CASE не удовлетворяется ни одним из WHEN, он возвращает NULL.
Код:
SELECT CASE BINARY 'A' WHEN 'a' THEN 1
WHEN 'b' THEN 2 END;
Пример вывода:
mysql> SELECT CASE BINARY 'A' WHEN 'a' THEN 1 WHEN 'b' THEN 2 END; + ------------------------------------------------- ---- + | СЛУЧАЙ БИНАРНЫЙ 'A' КОГДА 'a' THEN 1 WHEN 'b' THEN 2 END | + ------------------------------------------------- ---- + | NULL | + ------------------------------------------------- ---- + 1 ряд в наборе (0,00 сек)
Предыдущий: оператор XOR
Далее: ЕСЛИ ()
Новый контент: Composer: менеджер зависимостей для PHP , R программирования