Секция WHERE определяет условие соединения нескольких таблиц и/или условие фильтрации данных в результирующем наборе Запроса. SQL-операция соединения таблиц с помощью секции WHERE функционально аналогична операции присоединения таблиц с помощью подсекции JOIN в секции FROM.
Обратите внимание |
---|
При использовании системной функции EVALUATE( ) в условии фильтрации секции WHERE выполняемого запроса SQL может вернуть Некорректные результаты |
Общий синтаксис оператора выборки представлен в разделе SELECT - SQL, команда.
Детальная синтаксическая конструкция секции WHERE имеет следующий вид:
[WHERE JoinCondition | FilterCondition [AND | OR JoinCondition | FilterCondition] ...] |
Параметры
- JoinCondition
-
Определяет логическое выражение соединения таблиц для которых выполняется рассматриваемый оператор SQL SELECT. Для выполнения нескольких соединений (нескольких таблиц) логические выражения сцепляются логическими операндами AND или OR. Дополнительная информация о конструкции JoinCondition представлена в подсекции ON из соответствующей FROM, секция.
- FilterCondition
-
Определяет критерий отбора записей данных в результирующий набор Запроса. Дополнительная информация по созданию конструкции FilterCondition представлена в подсекции ON из соответствующей FROM, секция.
Комментарии
JoinCondition или FilterCondition могут иметь вид секции IN. Секция IN представляет собой конструкцию типа: IN (Value_Set), где Value_Set имеет вид списка выражений: Expr1[, Expr2[, ...[ ,ExprN]]]. В версии Visual FoxPro 9.0 указанная секция IN вычисляется по другому алгоритму, в отличие от младших версий; см. дополнительно раздел Изменения функциональности текущей версии VFP.
В следующем программном коде демонстрируется использование секции IN:
Копировать Код | |
---|---|
CLOSE DATABASES ALL |
В представленной далее программной конструкции определены все ключевые секции основной команды SELECT - SQL:
Копировать Код | |
---|---|
SELECT Select_List |
Детальное описание ключевых секций команды SQL SELECT представлено в следующих разделах:
Вы можете создать Условие фильтрации данных, содержащих символы шаблонов (SQL SELECT wildcard characters), к ним относятся символ процента (%) и символ подчеркивания (_), которые используются в подсекции ESCAPE секции WHERE. В секции ESCAPE вы можете определить дополнительный специальный символ, размещаемый перед символом шаблона указывающий, что перечисленные выше символы шаблона рассматриваются в конкретном контексте как просто символы, а не шаблон. Смотрите дополнительный раздел: Условия Фильтрации для Запросов и Представлений.
Пример
В следующем примере выполняется выборка трех полей из двух таблиц, соединение которых и фильтрация данных определяются сложным условием выборки в секции WHERE. В выборке соединяются две таблицы: Customer и Orders, полем соединения является Cust_ID; выбираются следующие поля Company, Order_Date, и Shipped_On; в выборку попадают данные, для которых выполняется условие order_date < 02/16/1994. В операторе SELECT используются внутренние алиасы исходных таблиц, для однозначного указания поля соединения Cust_ID, которое присутствует в обоих таблицах.
Копировать Код | |
---|---|
CLOSE ALL |