Условие отбора определяет критерий отбора записей, включаемых в итоговый набор. В результат будут включены только те строки, которые соответствуют наложенным условиям.
Условие может включать выражения, образованные с помощью операторов сравнения или логических операторов. Условия могут также объединяться и с помощью логических операндов AND, OR и NOT.
Например, чтобы получить список товаров, цена которых находится в диапазоне от $12 до $20, необходимо выполнить следующий запрос:
Select [Name], ListPrice
From Production.Product
Where (ListPrice>=12) and (ListPrice<=20)
Order by 2
Эти два оператора сравнения могут быть заменены одним логическим оператором BETWEEN, с помощью которого можно получить ответ на вопрос, лежит ли величина в указанном диапазоне.
Select [Name], ListPrice
From Production.Product
Where ListPrice Between 12 and 20
Order by ListPrice
Данный оператор предназначен лишь для того, чтобы облегчить логику восприятия алгоритма.
Для поиска по шаблону символьных строк используется логический оператор LIKE, который чаще всего используется в ситуациях, когда неизвестно точное совпадение.
В шаблоне могут использоваться следующие универсальные символы:
· % – подразумевает любую строку, состоящую из 0 и более символов;
· _ – ровно один символ;
· [ ] – любой символ из заданного множества (например, [adfh]) или диапазона (например, [0-9]),
· [^] – любой символ, не попадающий в заданный диапазон или множество.
Например, чтобы вывести имена сотрудников и их должностей, проживающих за пределами США, необходимо выполнить запрос:
Select LastName, JobTitle
From HumanResources.vEmployee
Where CountryRegionName Not Like ‘%United States%’
Для определения соответствия выражения одному из перечисленных в заданном списке значений применяется логический оператор IN. Данный оператор всегда может быть записан и в виде группы условий, объединенных операндом OR.
Например, с помощью следующего запроса может быть получен список сотрудников из США и Канады:
Select LastName, JobTitle
From HumanResources.vEmployee
WHERE CountryRegionName IN (‘United States’, ‘Canada’)
Однако в список значений нельзя включать неопределенное значение NULL, для работы с такими значениями используется функция выборки IS NULL.
Например, следующий запрос возвращает список товаров, у которых не указан цвет: