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 с несколько отличающимся синтаксисом для использования в хранимых программах.

Ссылки