Воскресенье
20.09.2020
07:00


Форма входа


Приветствую Вас Гость | RSS
Статьи по ORACLE, PL/SQL, Java и немного по SHELL (BASH),...
Главная Каталог статей Регистрация Вход
Главная » Статьи » ORACLE » ORACLE, PL/SQL

Использование условной логики в выражении SELECT
Задача
Требуется осуществить операцию IF!ELSE в выражении SELECT. На пример, необходимо сформировать результирующее множество, в котором для служащих, получающих $2000 или менее, возвращается значение «UNDERPAID» (низкооплачиваемый), для служащих, получающих $4000 или более, возвращается значение «OVERPAID» (высокооплачиваемый), и для служащих, заработная плата которых находится между $2000 и $4000, возвращается значение «OK». Результирующее множество должно выглядеть следующим образом:

 
ENAME SAL STATUS
------------------- ----------- -------------------------
SMITH 800 UNDERPAID
ALLEN 1600 UNDERPAID
WARD 1250 UNDERPAID
JONES 2975 OK
MARTIN 1250 UNDERPAID
BLAKE 2850 OK
CLARK 2450 OK
SCOTT 3000 OK
KING 5000 OVERPAID
TURNER 1500 UNDERPAID
ADAMS 1100 UNDERPAID
JAMES 950 UNDERPAID
FORD 3000 OK
MILLER 1300 UNDERPAID
 
Решение
Для осуществления условной логики непосредственно в выражении
SELECT используйте выражение CASE:

select ename,sal,
case when sal <= 2000 then 'UNDERPAID'
         when sal >= 4000 then 'OVERPAID'
         else 'OK'
end as status
from scott.emp;
 
Обсуждение
Выражение CASE позволяет применять условную логику к возвращае мым в результате запроса значениям. В целях формирования более удобного для чтения результирующего множества можно указать псевдоним для выражения CASE. В данном решении результаты выражения CASE выводятся в столбце под псевдонимом STATUS. Конструкция ELSE является необязательной. Если ELSE опущено, выражение CASE возвратит NULL для любой не удовлетворяющей условию строки.
 
Источник:  Молинаро Э. "SQL. Сборник рецептов"
Категория: ORACLE, PL/SQL | Добавил: Akarak (11.11.2009)
Просмотров: 8381 | Рейтинг: 5.0/1
Всего комментариев: 0
Имя *:
Email *:
Код *:
Меню сайта

Категории раздела
ORACLE, PL/SQL [36]
Скрипты DDL [3]
Скрипты по управлению объектами
Встроенные функции SQL [2]
Встроенные функции SQL

Интересные сайты
  • sql.ru
  • all-oracle.ru
  • oranet.ru
  • oracloid.ru
  • forum.vingrad.ru

  • Статистика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0

    Поиск

    Copyright MyCorp © 2020
    Используются технологии uCoz