Галерея
7757 8119 8300 8698 8817 9504 9722 9937
Интересные записи
Топовые новости
Новое

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

Комбинирование результатов нескольких запросовНа базе результатов нескольких запросов можно сформировать единый набор данных. Это может быть обычная консолидация всех записей, отобранных запросами, а может быть результат некоторой проведенной над ними операции теории множеств (см. приложение Л). Стандарт SQL:2003 поддерживает операторы UNION, INTERSECT и EXCEPT, предназначенные для комбинирования результатов нескольких запросов. Данный запрос возвращает 37 записей. А теперь представьте, что в дополнение к полученному списку нужно вывести номера телефонов всех торговых представителей. Вот запрос, выполняющий эту задачу — он возвращает 6 записей.

Для комбинирования этих записей в единый результирующий набор данных можно использовать оператор Как видите, в сформированном списке присутствуют записи с телефонами как заказчиков, так и торговых представителей. Следует отметить, что в запросе SQL, включающем оператор UNION, в списках предложений SELECT должно содержаться одинаковое количество столбцов, причем соответствующие столбцы должны иметь совместимые типы данных. К примеру, если в одном запросе выражение возвращает символьную строку, во втором запросе, объединенном оператором UNION, соответствующее выражение не должно возвращать число. Объединенный результирующий набор данных можно упорядочить, что и было продемонстрировано в предыдущем примере, однако следует отметить, что предложение ORDER BY может применяться только к общим результатам, а не к набору данных, возвращенному запросом, в котором это предложение присутствует.

Если запросы потенциально могут возвращать дублирующиеся записи, их можно как отфильтровать, так и заставить отображаться. По умолчанию оператор UNION исключает дублирующиеся записи, однако если применить оператор UNION ALL, все записи, отобранные отдельными запросами, будут присутствовать в объединенном наборе данных. Следующий простой запрос возвращает коды состояний и их описания из таблицы STATUS базы данных Таким образом, дублирующиеся строки (содержащие одинаковые значения в соответствующих столбцах) были исключены, в результате чего объединенный запрос возвращает все те же 4 записи. В то же время те же запросы, объединенные оператором UNION ALL, позволят получить полный набор данных, содержащий все строки, возвращенные обоими запросами.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *