CASE (оператор)
CASE — оператор в SQL, предназначенная для изменения возвращаемого значения в отличие от условия. Может использоваться в запросах, процедурах. Реализует функциональность, в языках программирования обычно представленную командами if-elseif-else. Синтаксис конструкции с использованием этого оператора:
<source lang=sql> CASE WHEN Condition THEN Result [WHEN Condition2 THEN Result2] [...] [ELSE ResultElse] END</source>
Описание
Возвращает значение Result, если условие Condition является верным. Если ни одно из условий не является верным, возвращает значение ResultElse, определённое в ELSE, или NULL.
Пример использования, который возвращает все вики-страницы в основном пространстве, на страницах участников и в их обсуждениях, последнюю правку на которых сделал участник Dream, с названиями пространств имён вместо их числовых идентификаторов: <source lang=sql>
SELECT CONCAT( CASE page_namespace WHEN 2 THEN 'Участник:' WHEN 3 THEN 'Обсуждение участника:' ELSE END, page_title ) FROM page JOIN revision ON page_latest = rev_id WHERE page_namespace IN(0,2,3) AND rev_user_text = 'Dream';
</source>
Также есть команда CASE с несколько отличающимся синтаксисом для использования в хранимых программах.