×
Мы обрабатываем cookies, чтобы сделать наш сайт удобнее и персонализированнее для вас. Подробнее: политика использования «cookies» и «политики конфиденциальности».

Для самостоятельной настройки ознакомьтесь с инструкцией

Дополнительные настройки cookies в браузерах

Файлы cookie автоматически загружаются в ваш браузер при посещении веб-сайта. У вас есть возможность управлять этими файлами. Если Вы не согласны с использованием файлов cookies, запретите их сохранение на своём устройстве, удалите уже имеющиеся файлы cookies через настройки браузера или прекратите использование сайта.

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

Инструкция по отключению cookies
Принять
Настроить
Отклонить

ДОКУМЕНТАЦИЯ

Выберите версию, форк и язык для СУБД Digital Q.DataBase, чтобы прочитать или скачать всю документацию.
Техподдержка
Документация
Диасофт
Авторские права © 2016–2025 ООО "Диасофт Экосистема"
Скачать всю документацию:

2.4.4. Объединение запросов (UNION, INTERSECT, EXCEPT)

Результаты двух запросов можно объединить с помощью операций над множествами: объединения, пересечения и разности. Синтаксис:

query1 UNION [ALL] запрос2
query1 INTERSECT [ALL] запрос2
query1 EXCEPT [ALL] запрос2

где query1 и запрос2 — это запросы, в которых могут использоваться любые функции, рассмотренные до настоящего момента.

UNION фактически присоединяет результат запрос2 к результату query1 (хотя и нет гарантии, что строки будут фактически возвращены именно в таком порядке). Кроме того, оно исключает дубликаты строк из результата так же, как и DISTINCT, если не UNION ALL используется.

INTERSECT возвращает все строки, присутствующие в результатах обеих query1 так и в результате запрос2. Дублирующиеся строки исключаются, за исключением случаев, когда INTERSECT ALL используется.

EXCEPT возвращает все строки, которые присутствуют в результате query1 но отсутствующих в результате команды запрос2. (Это иногда называют разностью между двумя запросами.) Как и прежде, дубликаты удаляются, если не указано EXCEPT ALL используется.

Для вычисления объединения, пересечения или разности двух запросов оба запроса должны быть «совместимыми по объединению», что означает, что они возвращают одинаковое число столбцов, а соответствующие столбцы имеют совместимые типы данных, как описано в Раздел 2.7.5.

Операции над множествами можно комбинировать, например

query1 UNION запрос2 EXCEPT query3

что эквивалентно

(query1 UNION запрос2) EXCEPT query3

Как показано в данном примере, для управления порядком вычисления можно использовать скобки. Без скобок операторы UNION и EXCEPT выполняются слева направо, но INTERSECT имеет более высокий приоритет, чем эти два оператора. Таким образом,

query1 UNION запрос2 INTERSECT query3

означает

query1 UNION (запрос2 INTERSECT query3)

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

SELECT a FROM b UNION SELECT x FROM y LIMIT 10

допускается, но это означает

(SELECT a FROM b UNION SELECT x FROM y) LIMIT 10

а не

SELECT a FROM b UNION (SELECT x FROM y LIMIT 10)

Наверх
свяжитесь
с нами
контакты
Для прямой связи с нами вы можете использовать контакты ниже, либо оставить заявку через форму обратной связи, и мы обязательно свяжемся с вами

*поля обязательные к заполнению