Метод. указания к ЛР № 7
.pdfЛабораторная работа 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" ТОГДА Ссылка
КОНЕЦ
ИЗ
Справочник.Еда