CASE#
Синтаксис#
Простой CASE:
CASE
WHEN condition THEN statements
[ ... ]
[ ELSE statements ]
END CASE
Поисковый CASE:
CASE expression
WHEN expression THEN statements
[ ... ]
[ ELSE statements ]
END
Описание#
Оператор CASE — это необязательная конструкция, позволяющая выполнять
условную обработку в SQL пользовательские функции.
Клаузы WHEN вычисляются последовательно и выполнение останавливается
на первом совпадении, поэтому порядок операторов имеет значение.
Операторы в клаузе ELSE выполняются, если ни одна из клауз WHEN
не сработала.
В отличие от таких языков, как C или Java, SQL не поддерживает проваливание (fall through) между case, поэтому выполнение останавливается в конце первого совпавшего варианта.
Можно использовать одну или несколько клауз WHEN.
Примеры#
Следующий пример показывает использование простого оператора CASE:
FUNCTION simple_case(a bigint)
RETURNS varchar
BEGIN
CASE a
WHEN 0 THEN RETURN 'zero';
WHEN 1 THEN RETURN 'one';
ELSE RETURN 'more than one or negative';
END CASE;
RETURN NULL;
END
Дополнительные примеры различной сложности, демонстрирующие использование
оператора CASE в сочетании с другими операторами, доступны в
Примеры SQL UDF.