Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Неделя 07 Лекция 2 (11).doc
Скачиваний:
3
Добавлен:
13.11.2019
Размер:
196.61 Кб
Скачать

11.5. Предложение where. Задание сложных условий поиска.

Ранее были рассмотрены простые варианты задания условия поиска в предложении WHERE (сравнение столбца с константой и внутреннее соединение). Однако условия поиска могут быть достаточно сложными, чему способствует и сам синтаксис оператора SELECT. Рассмотрим основные конструкции для построения сложных условий поиска.

11.5.1. Использование логических выражений.

Более сложные условия поиска могут быть построены с помощью логических операторов AND, OR или NOT, а также с помощью скобок, используемых для определения порядка вычисления выражения (если это необходимо или желательно). Вычисление выражений в условиях выполняется по следующим правилам.

  • Выражение вычисляется слева направо.

  • Первыми вычисляются подвыражения в скобках.

  • Операторы NOT выполняются до выполнения операторов AND и OR.

  • Операторы AND выполняются до выполнения операторов OR.

Для устранения любой возможной неоднозначности рекомендуется использовать скобки.

ПРИМЕР

Перечислите фамилии, имена и отчества читателей, занимающих должности доцентов и ассистентов.

SELECT Code, FamilyName, Name, Patronymic, Job, Post

FROM Readers

WHERE Post = ‘Доцент’ OR Post = ’Ассистент’;

В этом примере для выборки сведений о читателях, занимающих должности доцентов и ассистентов в предложении WHERE используется логический оператор OR: Post = ‘Доцент’ или Post = ’Ассистент’.

Результаты выполнения запроса представлены в таблице 11.9.

Таблица 11.9.

Code

FamilyNamе

Name

Patronymic

Job

Post

1

Иванов

Петр

Иванович

ДГУ, каф. ЭВТ

Ассистент

3

Ильин

Иван

Петрович

ДГУ, каф. физики

Доцент

5

Коршунова

Наталья

Юрьевна

ДГУ, каф.геоинфо рматики

Ассистент

11.5.2. Сравнение значения столбца с результатом значения выражения.

Условие поиска в предложении WHERE может быть сформулировано при помощи выражения:

<выражение> <оператор> <столбец>

Может использоваться и другой способ написания условия поиска,

<столбец> <оператор> <выражение>,

Чаще всего это применяется при использовании механизма вложенных подзапросов (вложенных операторов SELECT), речь о которых пойдет ниже. В этом случае результат вычисления выражения сравнивается с содержимым указанного столбца.

ПРИМЕР

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

SELECT Code, InventaryNumber,

(BookCode + FundCode) * Cost AS Example

FROM BookInventaryNumbers

WHERE ((BookCode + FundCode) * Cost) > 120

Результат выполнения запроса приведен в таблице 11.10.

Таблица 11.10

Code

InventaryNumber

Example

3

4532477

136,04

5

4678532

397,46