Добавил:
sora.alai.102@gmail.com Делаю работы на заказ. Какие именно? Пишите. Или регайтесь на бирже, где я работаю: https://vsesdal.com/promo?ref=748568 Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Метод. указания к ЛР № 7

.pdf
Скачиваний:
33
Добавлен:
25.11.2018
Размер:
178.84 Кб
Скачать

Лабораторная работа 7

Условный оператор в запросе

Напишем запрос, который получает названия и калорийность еды:

ВЫБРАТЬ Наименование, Калорийность

ИЗ

Справочник.Еда

А теперь добавим в результат запроса колонку, в которую будем выводить жирность еды по следующим правилам:

если калорийность меньше 100, то жирность низкая;

если калорийность от 100 до 200, то жирность нормальная;

если калорийность больше 200, то жирность высокая.

Как этого можно добиться, ведь в таблице Справочник.Еда нет колонки Жирность?

Оказывается, эту колонку мы можем добавить сами, используя условный оператор внутри

запроса:

ВЫБРАТЬ Наименование, Калорийность, ВЫБОР

КОГДА Калорийность < 100 ТОГДА "Низкая"

КОГДА Калорийность < 200 ТОГДА "Нормальная"

ИНАЧЕ "Высокая"

КОНЕЦ

ИЗ

Справочник.Еда

Давайте внимательнее присмотримся к тексту запроса:

В секции ВЫБРАТЬ идёт перечисление полей выборки: Наименование, Калорийность, а затем вместо третьего поля идёт конструкция условного оператора, результат которого и попадает в третью колонку.

Условия оператора обрабатываются последовательно. Если одно из них оказалось верным, то в качестве результата возвращается соответствующее значение. Если же ни одно из условий не выполнилось, то возвращается значение из секции ИНАЧЕ.

Обратите внимание, что третья колонка в таблице, которую вернул запрос, называется Поле1. Это имя было сгенерировано системой автоматически, потому что третьей колонке не соответствует никакого реального поля в таблице Справочник.Еда, откуда можно было бы это имя получить.

Но в наших силах дать ей это имя. Для этого сразу после описания поля нужно написать ключевое слово КАК, а после этого через пробел указать само имя. Такое имя будет

называться псевдонимом поля.

ВЫБРАТЬ Наименование, Калорийность, ВЫБОР

КОГДА Калорийность < 100 ТОГДА "Низкая"

КОГДА Калорийность < 200 ТОГДА "Нормальная"

ИНАЧЕ "Высокая"

КОНЕЦ КАК Жирность

ИЗ

Справочник.Еда

Более сложные логические выражения в условиях оператора

В логических условиях оператора выбора можно использовать и более сложные выражения.

Пример использования логического оператора ПОДОБНО:

ВЫБРАТЬ Наименование, ВЫБОР

КОГДА Наименование ПОДОБНО "Б%" ТОГДА "Начинается на Б"

КОГДА Наименование ПОДОБНО "К%" ТОГДА "Начинается на К"

ИНАЧЕ "Начинается на другую букву"

КОНЕЦ

ИЗ

Справочник.Еда

Пример использования функции ПОДСТРОКА:

ВЫБРАТЬ Наименование, ВЫБОР

КОГДА ПОДСТРОКА(Наименование, 1, 3) = "Бан" ТОГДА "Это банан"

КОГДА ПОДСТРОКА(Наименование, 1, 2) = "Чи" ТОГДА "Это чипсы"

ИНАЧЕ "Что-то другое"

КОНЕЦ

ИЗ

Справочник.Еда

Более сложные результаты условного оператора

Результатом условного оператора может быть не только строка, но и число, дата, булево или ссылочный тип. Это может быть или константа перечисленных выше типов или поле таблицы.

ВЫБРАТЬ Наименование, ВЫБОР

КОГДА Код = "000000001" ТОГДА "Банан"

КОГДА Код = "000000002" ТОГДА Наименование

КОГДА Код= "000000003" ТОГДА

555

КОГДА Код = "000000004" ТОГДА Калорийность

КОГДА Код = "000000005" ТОГДА ДАТАВРЕМЯ(2014, 01, 01)

КОГДА Код = "000000006" ТОГДА ИСТИНА

КОГДА Код = "000000007" ТОГДА Ссылка

КОНЕЦ

ИЗ

Справочник.Еда