Программирование >>  Исключение дубликатов строк 

1 ... 50 51 52 [ 53 ] 54 55 56 ... 152


примером запроса, приведенным в начале этой части, и применим оператор AND во время процесса преобразования.

Give те the first and last names of customers who live in Seattle and whose last name starts with the letter W ( Предоставить имя и фамилию клиентов, проо/сивающих в городе Сиэтл, у которых фамилия начинается с И .)

Преобразование: Select the first name and last name from the customers

table where the city is Seattle and the last name begins with H

(Выбрать имя и фамилию из таблицы Клиенты , где город - Сиэтл и фамилия начинается с И)

Уточнение:

Select the first name апё last name from the customers table where the city = Seattle and the last name begins with like H%

(Выбрать имя, фамилию из Клиенты , где город = Seattle и фамилия соответствует шаблону Н%)

SQL SELECT CustFirstName, CustLastName

FROM Customers

WHERE CustCity = Seattle

AND CustLastName LIKE HX

Здесь bo внимание принято как условие сравнения на равенство, так и условие совпадения с образцом, необходимые для запроса. Оба условия будут удовлетворены, что обеспечивается использованием оператора AND. Любая строка, которая не удовлетворяет каждому из условий, будет исключена из набора результатов.

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

т. е. все условие поиска целиком должно быть оценено как True (Истина). На рис. 6.9 представлен результат объединения двух предикатов типа выражение с помопдью оператора AND. Если л1Ъбое из выражений оценивается как False (Ложь), строка не выбирается.

Второе выражение

Истина

Ложь

Истина

Истина (Строки выбираются)

Ложь (Строки отвергаются)

Ложь (Строки отвергаются)

Ложь (Строки отвергаются)

Рис. 6.9- Результат объединения

двух предикатов типа * в операторе AND

выражение



Использование OR

Второй способ объединения двух или более условий состоит в использовании оператора OR. Этот оператор применяется, когда для включения строки в набор результатов должно быть удовлетворено любое из объединяемых условий. Ниже приведен пример использования оператора OR в условии поиска:

Уточнение:

7 need the name, city, and state of every staff member who lives in Seattle or is from the state of Oregon . ( Мне HyoiCHO имя, город и штат каждого сотрудника, проживающего в Сиэтле или в штате Орегон .)

Преобразование: Select first name, last name, city, and state from the staff

:able where the city is Seattle or the state is OR (Выбрать имя, фамилию, город и штат из таблицы Персонал , где город Сиэтл или штат OR )

Select first name, last name, city, attd state from the staff table where the city \s = Seattle or the state ts = OR (Выбрать имя, фамилию, город, штат из Персонал , где город = Seattle или штат = OR)

SELECT StfFir3tName, StfLastName, StfCity, StfState FROM Staff

WHERE StfCity = Seattle OR StfState = OR

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

Второе выражение

Истина

Ложь

Истина

Истина

Истина

(Строки

(Строки

выбираются)

выбираются)

Ложь

Истина (Строки выбираются)

Ложь (Строки отвергаются)

Рис. 6.10. Результат объединения

двух предикатов типа оператором OR

выражение

Рассмотрим, например, следуюидий запрос:

удовлетворяет какому-либо условию, она будет включена в набор результатов. Для прояснения вопроса на рис. 6.Ю показан результат объедиления двух предикатов типа выражение оператором OR.

Определить необходимость использования оператор AND для объединения условий относительно просто. Однако с оператором OR дело обстоит сложнее.

Show те а list of vender names and phone numbers for all venders based in Washington and California .



( Показать список имен и телефонных номеров поставщиков, находящихся в штатах Вашингтон и Калифорния ,)

Первым желанием будет использовать оператор AND, поскольку условие очевидно: нужны имена поставщиков в Вашингтоне и Калифорнии. К сожалению, это ошибка. Подумайте: ведь поставщик будет размещаться либо в Вашингтоне, либо в Калифорнии, потому что можно ввести только одно значение для штата в столбец Штат для некоторого поставщика. Реальное условие намного более понятно, не так ли? Как уже говорилось, необходимо ввести в привычку изучение и анализ своих запросов по мере того, как они становятся все более сложными, и как можно более тщательно просматривать предполагаемые условия.

Продолжим рассмотрение и выполним преобразование этого запроса:

Show те а list of vender names and phone numbers for all vendors based in Washington and California .

Преобразование: Select name, phone number, and state from the vendors

table where the state is WA or CA (Выбрать имя, номер телефона и штат из таблицы Поставщики , ддя которых штат WA или *СА)

Уточнение: Select name, phone number, апё state from the vendors

table where the state \s = *WA or state = *CA (Выбрать имя, номер телефона, штат из Поставщики , для которых штат = *WA или штат = *СА)

SQL SELECT VendName, VendPhoneNumber, VendState

FROM Vendors

WHERE VendState = WA OR VendState = CA

Необходимо принять во внимание оба условия сравнения на равенство и с помощью оператора OR гарантировать, что какое-либо из них будет удовлетворено. Обратите внимание, что state (штат) появляется в условии поиска на шаге уточнения и в операторе SQL дважды. Это необходимо, поскольку любое условие сравнения следует одному и тому же синтаксису:

Value Expression <оператор сравнения> Value Expression

Помните, что недопустимо пропускать любое из условий, ключевых слов или определенных терминов из синтаксической структуры, если только это не указано явно как необязательный элемент. Поэтому такое условие, как WHERE VendState = WA OR CA является совершенно неверными. Позже мы более подробно рассмотрим последовательность, в которой осуществляется оценка операторов, а в данном случае система баз данных оценивает выражение в строгой последовательности слева направо. Итак, в первую очередь будет оцениваться VendState = WA.

Для любой заданной строки результатом будет True, если указан штат Вашингтон, и False, если нет. Затем над этим результатом (True или False) выполняется операция *0R со значением литерала - которое не является значением True или



1 ... 50 51 52 [ 53 ] 54 55 56 ... 152

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика