кодесурса
«MYSQL

MySQL CASE оператор

script1adsense2code
script1adsense3code

Оператор 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 программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code