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

1 ... 46 47 48 [ 49 ] 50 51 52 ... 152


BETWEEN

BETWEEN b AND

BETWEEN b AND bz

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

Указание начала и конца таким образом, вероятно, возвратит нужные результаты для нашего примера. Однако можно получить неожиданные результаты, основанные на символьных данных, которые вы пытаетесь сравнивать. Вспомните, что оператор BETWEEN включает в диапазон начальную и конечную точки. Следовательно, студент, фамилия

которого состоит из одной буквы с будет включен в набор результатов.

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

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

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

Условие принадлежности множеству используется для проверки того, что значение типизированного выражения присутствует в списке явно заданных значений. Как видно из рис. 6.4, условие принадлежности множеству использует предикат IN чтобы определить, совпадает ли значение первого типизированного выражения с каким-либо значением в списке значений (заключенных в скобки), которые определяются одним или несколькими типизированными выражениями.

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




Рис. 6.4. Синтаксическая диаграмма для условия принадлежности



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

Вот запрос, с которым нужно обратиться к базе данных:

7 need to know which bowling lanes sponsored tournaments for the following 1999 dates: June 5, July 3, and August 7 . ( Мне HyoicHO узнать, какие боулинг-клубы устраивали турниры 5 июня, 3 июля и 7 августа 1999 .)

Этот тип запроса идеально подходит для условия принадлежности, потому что он направлен на поиск конкретного набора значений. Если бы запрос не был таким явным, то вместо условия принадлежности, скорее всего, использовалось бы условие проверки диапазона. Итак, выполним преобразование этого запроса:

Преобразование: Select tourney location from the tournaments table

where the tourney date is in this list of dates: June 5, 1999; July 3, 1999; August 7, 1999 (Выбрать места проведения турниров из таблицы Турниры ,

Уточнение

для которых дата турнира указана в списке дат: 5 июня 1999, Зиюля 1999, 7 августа 1999)

Select tourney location from the tournaments table where the tourney date is in this list of dates:

(June 5, 1000;4999-06-05\ July3, 1000;4999-07-03\ August 7, 1000;4999-08-07)

(Выбрать места проведения турниров из Турниры , где дата турнира (4999-06-05, 4999-07-03, 4999-08-07))

SELECT TourneyLocation FROM Tournaments WHERE TourneyDate

IN (1999-06-05, 1999-07-03, 1999-08-07)

Вот другой запрос, который для ответа требует условия проверки диапазона:

Which entertainers do we represent in Seattle, Redmond and Bothell? ( Каких эстрадных исполнителей мы представляем в Сиэтле, Редмонде и Бозелле? )

Преобразование: Select stage name from the entertainers table for

all entertainers based in Seattle, Redmond, or Bothell (Выбрать псевдонимы актера из таблицы Эстрадные артисты для всех эстрадных артистов, размеи;енных в Сиэтле, Редмонде или Бозелле)



Уточнение

Select stage name from the entertainers table

for all entertainers based where city

in (*Seattle\ *Redmond\ or *Botheir)

(Выбрать псевдонимы актера из Эстрадные артисты ,

где города в (*Сиэтл\ Тедмонд, Ъозелл))

SELECT EntStageName FROM Entertainers WHERE EntCity

IN (Seattle, Redmond, Bothell)

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

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

До сих пор мы изучали условия, которые в качестве критерия используют полные значения. Теперь рассмотрим условие, которое позволяет использовать в этом качестве частичные значения.

Совпадение с оброзцом

Условие совпадения с образцом является полезным, когда нужно найти значения, подобные указанной строке-образцу, или когда только неполная часть информации используется как критерий поиска. На рис. 6.5 представлена синтаксическая структура этого типа условия.

В этом условии берется значение типизированного выражения и используется предикат LIKE для проверки, совпадает ли это значение с заданным образцом строки. Образец строки может состоять из любой логической комбинации обычных строк символов и двух специальных групповых символов: процента (%) и подчеркивания ( ). Символ процента представляет ни одного или несколько произвольных обычных

Совпадение с образцом

1ит f.

с г рG< О Й Й Л1-?Т -Эр(Л А

Рис. 6.5. Синтаксическая диаграмма для условия совпадения с образцом



1 ... 46 47 48 [ 49 ] 50 51 52 ... 152

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