Раздел UNION

Раздел UNIONслужит для объединения результатов выборки, возвращаемых двумя и более запросами.

 

Рассмотрим синтаксис раздела UNION:

 

<Спецификация_ Запроса_1>

UNION [АLL]

<Спецификация_ Запроса_2>

[UNION [АLL]]

<Спецификация_ Запроса_n>

 

Чтобы к результатам запросов можно было применить операцию объединения, они должны соответствовать следующим требованиям:

запросы должны возвращать одинаковый набор столбцов (причем необходимо гарантировать одинаковый порядок следования столбцов в каждом из запросов);

типы данных соответствующих столбцов второго и последующих запросов должны поддерживать неявное преобразование или совпадать с типом данных столбцов первого запроса;

ни один из результатов не может быть отсортирован с помощью раздела ORDER BY(однако общий результат может быть отсортирован, как будет показано ниже).

Указание ключевого слова ALLпредписывает включать в результат повторяющиеся строки. По умолчанию повторяющиеся строки в результат не включаются.

Продемонстрируем применение раздела UNION.Рассмотрим таблицы «Кадровый Состав» и «Студенты» и попробуем построить, например, общий список и учащихся, и преподавателей, номер телефона которых начинается на 120.

 

Сначала построим запрос для таблицы «Кадровый Состав»:

 

SELECT Фамилия, Имя, Отчество, Должность, Телефон

FROM Кадровый_ состав

WHERE Телефон LIKE '120%'

 

Результат действия запроса показан на рис. 7.28.

 

 

Затем построим запрос для таблицы «Студенты».

 

SELECT Фамилия, Имя, Отчество, Телефон

FROM Студенты

WHERE Телефон LIKE '120 %'

 

В результате выполнения запроса получим выборку, показанную на рис. 7.29.

 

Теперь объединим два запроса, чтобы в результате получить единую таблицу. Заметим, что столбец Должность отсутствует в таблице «Студенты». Чтобы в общей таблице выделить студентов, введем в запрос для таблицы «Студенты» столбец, содержащий строку — константу «Студент» для всех записей, и объединим два запроса с помощью раздела UNION:

 

SELECT Фамилия, имя, Отчество, Должность, Телефон

FROM кадровый_ состав

WHERE Телефон LIKE '120 %'

UNION

SELECT, Фамилия, имя, Отчество, Новый_ столбец = 'Студент',

Телефон

FROM Студенты

WHERE Телефон LIKE '120 %'

 

После выполнения запроса получим таблицу, показанную на рис. 7.30.

 

 

При объединении таблиц столбцам итогового набора данных всегда присваиваются те же имена, что были указаны в первом из объединяемых запросов.

Упорядочим полученный список по алфавиту, добавив предложение ORDER BY:

SELECT Фамилия, имя, Отчество, должность, Телефон

FROM Кадровый_ состав

WHERE Телефон LIKE '120 %'

UNION

SELECT Фамилия, имя. Отчество, Новый_ столбец = Студент

Телефон

FROM Студенты

WHERE Телефон LIKE '120%'

ORDER BY Фамилия

 

Результат показан на рис. 7.31.

 

 








Дата добавления: 2015-04-15; просмотров: 752;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.007 сек.