CASE оператор MySQL

В этом учебном пособии вы узнаете, как использовать оператор CASE в MySQL с синтаксисом и примерами.

Описание

В MySQL оператор CASE имеет функциональность оператора IF-THEN-ELSE и имеет два синтаксиса, которые мы рассмотрим.

Синтаксис

Синтаксис для оператора CASE в MySQL:

CASE выражение

WHEN значение_1 THEN
{… выполняется код, когда выражение равно значение_1…}
[ WHEN значение_2 THEN
{…выполняется код, когда выражение равно значение_2…} ]
[ WHEN значение_n THEN
{… выполняется код, когда выражение равно значение_n…} ]

[ ELSE
{… выполнится код, если выражение не будет равно значению…} ]

END CASE;

или

CASE

WHEN условие_1 THEN
{… выполняется код, когда условие_1 будет иметь значение TRUE…}
[ WHEN условие_2 THEN
{… выполняется код, когда условие_2 будет иметь значение TRUE…} ]
[ WHEN условие_n THEN
{… выполняется код, когда условие_n будет иметь значение TRUE…} ]

[ ELSE
{… выполнится код, когда все условия будут иметь значения FALSE…} ]

END CASE;

Параметры или аргументы

выражение — значение, которое вы сравниваете со списком значений. (то есть: значение_1, значение_2, … значение_n).
значение_1, значение_2, … значение_n — сравнивается в указанном порядке. Когда значение равно выражению, оператор CASE будет выполнять соответствующий код и не сравнивать их дальше.
условие_1, условие_2, … условие_n — сравнивается в указанном порядке. Как только условие окажется TRUE, оператор CASE выполнит соответствующий код, и не будет более сравнивать условия.

Примечание

  • Оператор CASE будет выполнять код ELSE, если ни одно из предложений WHEN не будет выполнено.

Пример

Рассмотрим пример, который показывает, как использовать оператор CASE в MySQL. Во-первых, мы рассмотрим первый синтаксис для оператора CASE. Например:

В этом примере мы использовали первый синтаксис оператора CASE. Если значение month_value будет равно 3000, тогда для cost_level будет установлено значение ‘Low Cost’. Если значение month_value будет равно 4000, то для cost_level будет установлено значение ‘Avg Cost’. В противном случае cost_level достигнет ‘High Cost’.
Теперь рассмотрим использование оператор CASE со вторым синтаксисом.

В этом примере мы используем второй синтаксис для оператора CASE. В этом примере, если значение month_value меньше или равно 3000, тогда переменной cost_level будет присвоено ‘Low cost’. Если значение month_value больше 3000 и меньше или равно 6000, тогда cost_level будет присвоено значение ‘Avg cost’. В противном случае cost_level будет присвоено значение ‘High cost’.