Студопедия

Главная страница Случайная лекция


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

Порталы:

БиологияВойнаГеографияИнформатикаИскусствоИсторияКультураЛингвистикаМатематикаМедицинаОхрана трудаПолитикаПравоПсихологияРелигияТехникаФизикаФилософияЭкономика



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




Глава 14 «Использование операторa UNION»

Теоретические сведения

1. Оператор UNION позволяет объединить несколько запросов в один. Количество и тип столбцов в каждом запросе должно одинаковыми. Только последний запрос заканчивается точкой с запятой.

2. UNION автоматически исключает из выходных данных дублирующие строки и использование DISTINCT не имеет смысла.

3. Операторы SELECT, объединенные UNION, могут содержать константы и выражения.

4. Результаты запросов, объединенных UNION, можно упорядочить. При этом ORDER BY записывается после последнего запроса и в нем указывается номер, а не имя столбца сортировки.

Примеры запросов

1. Получение сведений о продавцах и покупателях, проживающих в городе London
SELECT snum, sname FROM Salespeople WHERE city='London'
UNION
SELECT cnum, cname FROM Customers WHERE city='London'

2. Составление отчета для каждого продавца о его ежедневном минимальном и максимальном заказах c сортировкой по номеру заказа
SELECT a.snum, sname, onum, 'Highest on', odate FROM Salespeople a, Orders b
WHERE a.snum=b.snum AND b.amt=
(SELECT MAX(amt) FROM Orders c WHERE c.odate=b.odate)
UNION
SELECT a.snum, sname, onum, 'Lowest on', odate FROM Salespeople a, Orders b
WHERE a.snum=b.snum AND b.amt=
(SELECT MIN (amt) FROM Orders c WHERE c.odate=b.odate)
ORDER BY 3;

Вопросы

1. Создайте объединение двух запросов, которые показывают фамилию, город и рейтинг всех покупателей. Те у кого рейтинг больше 200, должны иметь комментарий “High rating”, а все прочие - “Low rating”.

2. Напишите команду, которая выдает в качестве выходных данных значения полей фамилия и номер для каждого продавца и покупателя, имеющего более одного заказа. Результаты вывести в алфавитном порядке.

 

 

1. SELECT cname, city, rating, 'High Rating' FROM Customers WHERE rating > = 200 UNION SELECT cname, city, rating, ' Low Ratlng' FROM Customers WHERE rating < 200; ЙМЙ SELECT cname, city, rating, 'High Rating' FROM Customers WHERE rating > = 200 UNION SELECT cname, city, rating, ' Low Rating' FROM Customers WHERE NOT rating > = 200;

 

2. SELECT cnum, cname

FROM Customers a

WHERE 1 <

(SELECT COUNT (-)

FROM Orders b

WHERE a.cnum = b.cnum)

 

UNION

 

SELECT snum, sname

FROM Salespeople a

WHERE 1 <

(SELECT COUNT (*)

FROM Orders b

WHERE a.snum = b.snum)

 

ORDER BY 2;

 

3. SELECT snum

FROM Salespeople

WHERE city = 'San Jose'

 

UNION

 

(SELECT cnum

FROM Customers

WHERE city = 'San Jose'

 

UNION ALL

 

SELECT onum

FROM Orders

WHERE odate = 10/03/1990);


<== предыдущая страница | следующая страница ==>
Примеры запросов. 1. Найти всех продавцов, имеющих покупателей, имена которых следуют в алфавитном порядке за именем продавца SELECT * FROM Salespeople WHERE sname < ANY | Теоретические сведения. 1. Данные заносятся в поля и исключаются из них с помощью трех команд языка манипулирования данными (Data Manipulation Language - DML) : INSERT(вставить)

Дата добавления: 2015-06-30; просмотров: 162; Нарушение авторских прав




Мы поможем в написании ваших работ!
lektsiopedia.org - Лекциопедия - 2013 год. | Страница сгенерирована за: 0.002 сек.