Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

OR (ИЛИ)



В выражениях могут использоваться следующие операторы сравнения:

= (равно), о (не равно), < (меньше), <= (меньше или равно), >

(больше), >= (больше или равно), которые могут предваряться оператором

NOT.

Предикат может принимать одно из трех значений: TRUE, FALSE,

UNKNOWN. В результатную таблицу переносятся те строки, для которых

значение предиката равно TRUE.

Кроме стандартных операторов сравнения в SQL можно использовать

специальные операторы предикатов:

• <интервальный предикат >;

• <предикат IN>;

• < предикат проверки на неопределенное значение >;

• <предикат подобия>.

При использовании интервального предиката диапазон значений

можно задавать в виде

WHERE [NОТ]<выражение> BETWEEN <нижнее выражение>

AND < верхнее выражением

3 9 2

Например, если требуется выдать сведения о поставке продукции

за последнюю декаду ноября 2002 г., то запрос можно задать следующим

образом:

Это же условие отбора можно задать и без использования интервального

предиката:

При использовании предиката IN предложение WHERE будет

иметь следующий вид:

В приведенном ниже примере требуется вывести данные о поставках

поставщиков P1, Р2, РЗ.

Без использования IN запрос имел бы следующий вид:

Пример с использованием подзапроса будет рассмотрен позже,

при демонстрации возможностей обработки нескольких таблиц.

Предикат подобия применяется для поиска подстроки в указанной

строке. Предложение WHERE при использовании предиката этого

типа будет иметь следующий вид:

В качестве <выражения_для_вычисления_значения_строки_1>

обычно используется <имя колонки>.

<Выражение_для_вычисления_значения_строки_2> называется

образцом. В образце разрешается применять заполнители (трафаретные

символы):

• символ подчеркивания (_) - используется вместо любого единичного

символа в проверяемом значении;

• символ процента (%) - заменяет набор любых символов в проверяемом

значении.

Предположим, что коды металлов начинаются с буквы «м». Тогда

запрос, позволяющий вывести сведения о поставке металлов, будет

иметь вид

Предикат проверки на неопределенное значение имеет вид

Например, если в таблице «Сотрудник» (sotr) есть поле «Ученая_сте-

пень» (ych_st), то запрос, выводящий список сотрудников, не имеющих

ученых степеней, будет выглядеть следующим образом:

При использовании подзапросов в условии WHERE может быть

использован квантор существования EXISTS. Формат условия

WHERE в этом случае имеет вид

EXISTS проверяет, вернул ли подзапрос какие-либо ряды. Фактически

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

IN, может альтернативным образом быть сформулирован также

с использованием EXISTS. Обратное утверждение несправедливо.

Пример запроса с использованием EXISTS:

Задача.

Выдать справку о нагрузке по кафедрам за 2009/2010 учебный год с детализацией по видам нагрузке, содержащую поля NAIMKAF, VIDNAGR и суммарный объем нагрузки (SQL).

select Table3.NaimKaf, Table3.VidNagr, SUM(Chas)as AllNAgr from
(select Kaf.NaimKaf, Table2.VidNagr, Table2.Chas from Kaf inner join
(select Table1.* from
(select Nagr.*, Prep.KodKaf from Nagr inner join Prep on Nagr.KodPrep=Prep.KodPrep) as Table1
where ((CONVERT(int, YEAR(Table1.Data))>=2009) AND (CONVERT(int, YEAR(Table1.Data))<=2010)) as Table2
on Table2.KodKaf=Kaf.KodKaf) as Table3 group by NaimKaf, VidNagr





Дата публикования: 2015-10-09; Прочитано: 412 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...