Отбор строк с использованием условий поиска 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Отбор строк с использованием условий поиска



5. Выберем из таблицы "Pokup" поля "Фамилия покупателя", "Код товара" и "Стоимость товара" для всех товаров с кодом больше 400 (условие выборки)

SELECT cfam, nkod, ntov

FROM Pokup

WHERE nkod>400;

 

Условие может строиться с использованием логической операции AND (И), OR (ИЛИ), NOT (НЕ), включать в себя операции сравнения: <, <=, >, >=, =.

 

6. Выберем из таблицы "Pokup" поля "Фамилия покупателя", "Код товара" и "Стоимость товара" для всех товаров с кодом больше 400, но меньше 700.

SELECT cfam, nkod, ntov

FROM Pokup

WHERE nkod>400 And nkod<700;

6_1. Выберем из «Pokup» всех кроме Гребенева

SELECT cfam

FROM Pokup

WHERE NOT Cfam="Гребенев А. Н.";

 

 

В условиях выборки можно использовать ключевые слова: BETWEEN, IN, LIKE, IS NULL

BETWEEN – задает диапазон значений, из которого отбираются данные, верхний и нижний пределы считаются частью диапазона.

NOT BETWEEN – значения не ходят в диапазон.

IN – задает списокзначений, с которым сравниваются отбираемые данные.

NOT IN – отбираются значения не входящие в список

LIKE – проверка на соответствие шаблону значений столбца. Шаблон - строка символ, в которую входят подстановочные знаки (* – один произвольный символ;?-любой одиночный символ, #- любое одиночное число).

NOT LIKE – выбирает строки, которые не соответствуют шаблону.

NULL – пустое поле, проверка на содержание в столбце значения NULL

При выборке пустых полей или непустых используется условие IS NULL или IS NOT NULL

 

7. Выбрать из «Pokup» поля cfam, nkod, ntov, при условии, что код товара находится между 300 и 400.

SELECT cfam, nkod, ntov

FROM Pokup

WHERE nkod BETWEEN 300 AND 400;

 

7_1. Выбрать все поля из таблицы "Pokup", при условии, что код товара должен быть равен 310, 600 или 910.

SELECT *

FROM Pokup

WHERE Pokup.Nkod IN (310,360,910);

7_2. С помощью проверки NOT IN получить значения данных, не являющихся членами заданного списка.

SELECT *

FROM Pokup

WHERE Pokup.Nkod NOT IN (310,360,910);

7_3. Выбрать все поля из таблицы "Pokup", при условии, что фамилия клиента должна начинаться с буквы "С".

SELECT *

FROM Pokup

WHERE cfam LIKE 'С*';

Запросы с группировкой

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

 

 

8. Выбрать из таблицы "Pokup" поле "Вид оплаты", сгруппировать по нему, рассчитать сумму стоимости товара и доставки для каждого вида оплаты (наличный, безналичный)

SELECT cvid, SUM(ntov+ndos)

FROM Pokup

GROUP BY cvid;

 

9_1. Можно использовать группировку по нескольким полям. Выбрать из таблицы "Pokup" поля "Вид оплаты" и "Код товара", сгруппировать по этим полям, рассчитать сумму стоимости товара и доставки для каждого товара и вида оплаты.

SELECT cvid, nkod, SUM(ntov+ndos)

FROM Pokup

GROUP BY Pokup.Cvid, Pokup.Nkod;

9_2. применение агрегатной функции к группе

SELECT cvid, SUM(ntov)

FROM Pokup

GROUP BY Pokup.Cvid;

Условие поиска, используемое в предложении HAVING накладываемое на группу, применяется не к отдельным строкам, а к группе в целом. В условие поиска может входить:

- Константа;

- Агрегатная функция;

- Столбец группировки, который по определению имеет одно и то же значение во всех строках группы;

- Выражение, включающее в себя перечисленные выше элементы.

На практике HAVING должно включать как минимум одну агрегатную функцию.

 

9. В предыдущем запросе наложить на группу суммы условие > 500, использовать HAVING.

SELECT Pokup.Cvid, Sum(Ntov+Ndos) AS Цена, Nkod

FROM Pokup

GROUP BY Pokup.Cvid, Nkod

HAVING (Sum([Ntov]+[Ndos])>500);

 



Поделиться:


Последнее изменение этой страницы: 2017-01-25; просмотров: 75; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.221.239.148 (0.007 с.)