В этом учебном пособии вы узнаете, как использовать MariaDB оператор CASE в MariaDB с синтаксисом и примерами.
Описание
В MariaDB оператор CASE имеет функциональность оператора IF-THEN-ELSE и имеет 2 синтаксиса, которые мы рассмотрим.
Синтаксис
Синтаксис CASE в MariaDB:
WHEN value_1 THEN
{..операторы для выполнения, когда expression равно value_1..}
[ WHEN value_2 THEN
{..операторы для выполнения, когда expression равно value_2..} ]
[ WHEN value_n THEN result_n
{..операторы для выполнения, когда expression равно value_n..} ]
[ ELSE
{..операторы для выполнения, когда не найдено ни одного значения..} ]
END CASE;
Или
WHEN condition_1 THEN
{..операторы для выполнения когда condition_1 TRUE..}
[ WHEN condition_2 THEN
{..операторы для выполнения когда condition_2 TRUE..} ]
[ WHEN condition_n THEN
{..операторы для выполнения когда condition_n TRUE..} ]
[ ELSE
{..операторы для выполнения когда все conditions FALSE..} ]
END CASE;
Параметры или аргументы
- expression
- Значение, которое вы сравниваете со списком значений. (т.е.: value_1, value_2, .. value_n).
- value_1, value_2, .. value_n
- Они оцениваются в указанном порядке. Как только значение будет соответствовать выражению, оператор CASE выполнит соответствующие операторы и больше не будет их оценивать.
- condition_1, condition_2.. condition_n
- Эти условия оцениваются в указанном порядке. Как только условие окажется истинным, оператор CASE выполнит соответствующие операторы и больше не будет оценивать условия.
Примечание
- Оператор CASE выполнит предложение ELSE, если ни одно из предложений WHEN не было выполнено.
Пример
Давайте посмотрим пример, который показывает, как использовать оператор CASE в MariaDB. Сначала мы рассмотрим первый синтаксис оператора CASE.
Например:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
DELIMITER // CREATE FUNCTION CalcLevel ( value INT ) RETURNS varchar(20) DETERMINISTIC BEGIN DECLARE level varchar(20); CASE value WHEN 4000 THEN SET level = 'Low'; WHEN 5000 THEN SET level = 'Medium'; ELSE SET level = 'Other'; END CASE; RETURN level; END; // DELIMITER ; |
В этом примере мы использовали первый синтаксис для оператора CASE. В этом примере, если value равно 4000, тогда для level будет установлено значение 'Low'. Если value равно 5000, тогда для level будет установлено значение 'Medium'. В противном случае level будет установлен на 'Other'.
Давайте посмотрим, как использовать оператор CASE со вторым синтаксисом.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
DELIMITER // CREATE FUNCTION CalcLevel ( value INT ) RETURNS varchar(20) DETERMINISTIC BEGIN DECLARE level varchar(20); CASE WHEN value <= 4000 THEN SET level = 'Low'; WHEN value > 4000 AND value <= 5000 THEN SET level = 'Medium'; ELSE SET level = 'Other'; END CASE; RETURN level; END; // DELIMITER ; |
В этом примере мы используем второй синтаксис для оператора CASE. В этом примере, если value меньше или равно 4000, тогда для level будет установлено значение 'Low'. Если value больше 4000 и меньше или равно 5000, для level будет установлено значение 'Medium'. В противном случае level будет установлен на 'Other'.