русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Условные выражения с оператором CASE


Дата добавления: 2015-07-09; просмотров: 2344; Нарушение авторских прав


Цель работы: научится использовать оператор условного перехода CASE.

Ключевые слова: оператор CASE со значениями, оператор CASE с условиями поиска.

Теоретический материал:

В обычных языках программирования имеются операторы условного перехода, которые позволяют управлять вычислительным процессом в зависимости от того, выполняется или нет некоторое условие. В языке SQL таким оператором является CASE (случай, обстоятельство, экземпляр). Он имеет две основные формы.

Оператор CASE со значением имеет следующий синтаксис:

CASE проверяемое_значение WHEN значение1 THEN результат1 WHEN значение2 THEN результат2 …. WHEN значениеN THEN результатN ELSE результатX END

В случае, когда проверяемое_значение равно значение1, оператор CASE возвращает значение результат1. В противном случае проверяемое_значение сравнивается с значение2, и если они равны, возвращается результат2 и.т.д. Если проверяемое_значение не равно ни одному из таких значений, то возвращается значение результатX.

Ключевое слово ELSE не является обязательным. Если оно отсутствует и ни одно из значений, подлежащих сравнению, не равно проверяемому значению, то возвращается значение NULL.

 

Пример 1. Вывести название региона и код региона (Краснодарский край – 93, Ставропольский край – 73)

 

SELECT `nazvanie` ,
CASE `nazvanie`
WHEN 'Краснодарский край' THEN '93'
WHEN 'Ставропольский край' THEN '73'
ELSE `nazvanie`
END

AS Код_региона
FROM `region`

Вторая форма оператора CASE предполагает его использование при поиске в таблице тех записей, которые удовлетворяют определенному условию:

CASE WHEN условие1 THEN результат1 WHEN условие2 THEN результат2 …. WHEN условиеN THEN результатN ELSE результатX END

 

Оператор CASE проверяет, истинно ли условие1 для первой записи в наборе, определенном оператором WHERE, или во всей таблице, если оператор WHERE отсутствует. Если да, то CASE возвращает значение результат1. В противном случае для данной записи проверяется условие2 и т.д. Если ни одно из условий не выполняется, то возвращается значение результатX, указанное после ключевого слова ELSE.



Ключевое слово ELSE не является обязательным. Если оно отсутствует и ни одно из значений, подлежащих сравнению, не равно проверяемому значению, то возвращается значение NULL.

 

Пример 2. Вывести фамилии, имена студентов и номера телефонов. Вместо значения NULL вывести фразу «Нет телефона»

SELECT `fam`, `ima`,

CASE WHEN `telephone` IS NULL THEN 'НЕТ ТЕЛЕФОНА'

ELSE `telephone`

END

AS Номер_телефона

FROM `dannie`

 

Обратите внимание, что вместо первой формы оператора CASE всегда можно использовать вторую.

CASE WHEN проверяемое_значение=значение1 THEN результат1 WHEN проверяемое_значение=значение2 THEN результат2 …. WHEN проверяемое_значение=значениеN THEN результатN ELSE результатX END

 

Пример 3. Вывести ФИО родителей и номера их телефонов с указанием мобильного оператора (8918…, 8919… - МТС, 8928… - МЕГАФОН, 8905…, 8906…, 8909… – БИЛАЙН)

SELECT `fio_rod`,`tel`,

CASE

WHEN (`tel` like '8918%')or (`tel` like '8919%') THEN 'МТС'

WHEN `tel` like '8928%' THEN 'МЕГАФОН'

WHEN (`tel` like '8905%')or (`tel` like '8906%') THEN 'БИЛАЙН'

ELSE `tel`

END

AS Оператор

FROM `roditeli`

Порядок выполнения работы:

1. Перевести каждую оценку в рейтинговый бал (за оценку меньше 3 начисляется 0 баллов, от 3 до 4 – 1 балл, за оценку 5 – 2 балла).

2. Вывести список оценок и их буквенное обозначение (5 – «отлично», 4 – «хорошо», 3 – «удовлетворительно», 2 – «неудовлетворительно»).

3. Вывести список оценок и указать значение по системе «зачет-незачет» (для оценок 5 или 4 – «зачет», для остальных – «незачет»).

4. Вывести названия групп и названия специальностей («…ПИЭ…» - Прикладная информатика в экономике, «…Мат…» - Математика, «…Инф…» - Информатика, в случае другого обозначения повторить название группы).

5. Вывести фамилии студентов и место прохождения практики (студенты группы с кодом 1 проходят практику в «Банк УралСиб», с кодом 2 – «СберБанк», с кодом 3 – «Первомайский», с кодом 4 – «РосСельхозБанк»).

 



<== предыдущая лекция | следующая лекция ==>
Основные числовые функции | Простые подзапросы


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 1.747 сек.