Оператор CASE стр. 2 |
||||||||||||||||||||||||||||||
Оператор CASE может быть использован в одной из двух синтаксических форм записи: 1-я форма:
2-я форма:
Все предложения WHEN должны иметь одинаковую синтаксическую форму, то есть нельзя смешивать первую и вторую формы. При использовании первой синтаксической формы условие WHEN удовлетворяется, как только значение проверяемого выражения станет равным значению выражения, указанного в предложении WHEN. При использовании второй синтаксической формы условие WHEN удовлетворяется, как только предикат принимает значение TRUE. При удовлетворении условия оператор CASE возвращает значение, указанное в соответствующем предложении THEN. Если ни одно из условий WHEN не выполнилось, то будет использовано значение, указанное в предложении ELSE. При отсутствии ELSE, будет возвращено NULL-значение. Если удовлетворены несколько условий, то будет возвращено значение предложения THEN первого из них, так как остальные просто не будут проверяться. В приведенном выше примере была применена вторая форма оператора CASE. Заметим, что для проверки на NULL стандарт предлагает более короткую форму — оператор COALESCE. Он имеет произвольное число параметров и возвращает значение первого из них, отличного от NULL. Для двух параметров оператор COALESCE(A, B) эквивалентен следующему оператору CASE:
Решение рассмотренного выше примера при использовании оператора COALESCE можно переписать следующим образом:
Применение первой синтаксической формы оператора CASE можно продемонстрировать на следующем примере. Пример 5.10.1 Вывести все имеющиеся модели ПК с указанием цены. Отметить самые дорогие и самые дешевые модели.
В результате выполнения запроса получим:
Оператор CASE может быть использован не только в предложении SELECT. Здесь вы можете найти другие примеры его использования. Рекомендуемые упражнения: 52, 59, 64, 65, 66, 68, 69, 74, 75, 83, 84, 86, 91, 92, 93, 99, 110, 111, 113, 118, 126, 128, 130, 131, 132 |