Сложные критерии отбора
С помощью секции WHERE можно не только связывать таблицы, но и создавать сложные критерии отбора данных. Для этого в секции указывается произвольное количество операторов вида ПОЛЕ ~ ЗНАЧЕНИЕ, связываемых логическими операциями NOT, AND, OR, где знак тильда (~) означает операцию отношения:
SELECT
NaklID, NDate, FName, TName, NSum, NPayedSum, NRetSum, NCoeff, NRetDate
FROM Nakls, Firms, TypeNakl
WHERE FirmID=NFirm AND TypeID=NType AND (NSum>100000 OR NRetSum>0)
ORDER BY NaklID
В этом примере отбираются только те накладные, сумма которых превышает 100000 рублей или в которых ненулевая сумма возврата.
Приоритет операций отношения в SQL выше приоритета логических операций. Операция OR имеет меньший приоритет, чем операция AND.
Справа от операции отношения указывается значение. Если это значение – текстовое или типа дата-время, оно должно заключаться в апострофы или кавычки. Кроме того, к значению текстового поля можно применять операцию LIKE. Тогда значение справа от LIKE представляет не все поле, а лишь его часть:
SELECT BName FROM Books
WHERE BName LIKE ″Я%″
ORDER BY BName
Этот запрос отбирает из таблицы Books названия книг, которые начинаются с буквы «Я».
Cимвол процента (%) указывает, что на его месте могут стоять любые символы.
Следующий запрос отберет все книги, в названиях которых хотя бы раз встречается буква «я»:
SELECT BName FROM Books
WHERE BName LIKE "%я%"
ORDER BY BName
С помощью зарезервированного слова IN (в [диапазоне]) можно перечислить несколько допустимых значений поля. Следующий запрос отбирает названия 1-й, 3-й и 7-й книг из таблицы Books:
SELECT BName FROM Books
WHERE BookID IN (1, 3, 7)
Вместо перечня допустимых значений в круглых скобках после операции IN можно разместить вложенный оператор SELECT. Если требуется посмотреть список всех покупателей, еще не оплативших поставленные им книги, можно сформировать такой запрос:
SELECT FName FROM Firms
WHERE FirmID IN
(SELECT NFirm FROM Nakls
WHERE NPayedSum=0 AND NType IN (1, 7))
ORDER BY FName
Дата добавления: 2015-12-17; просмотров: 14; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!