ТОП 10:

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



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; Нарушение авторского права страницы

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