UNION SQL Server

В этом учебном пособии вы узнаете, как использовать оператор UNION в SQL Server (Transact-SQL) с синтаксисом и примерами.

Описание

Оператор SQL Server UNION используется для объединения наборов результатов из 2 или более операторов SELECT. Он удаляет повторяющиеся строки между различными операторами SELECT.
Каждый оператор SELECT в операторе UNION должен иметь одинаковое количество столбцов в наборах результатов с похожими типами данных.

Синтаксис

Синтаксис оператора UNION в SQL Server (Transact-SQL):

SELECT expression1, expression2, ... expression_n
FROM tables
[WHERE conditions]
UNION
SELECT expression1, expression2, ... expression_n
FROM tables
[WHERE conditions];

Параметры или аргументы

expression1, expression2, ... expression_n - столбцы или вычисления, которые вы хотите получить.
tables - таблицы, из которых вы хотите получить записи. Должна быть хотя бы одна таблица, перечисленная в предложении FROM.
WHERE conditions - необязательный. Условия, которые должны быть выполнены для выбранных записей.

Примечание

  • В обоих операторах SELECT должно быть одинаковое количество выражений.
  • Соответствующие столбцы в каждом из операторов SELECT должны иметь похожие типы данных.
  • Оператор UNION удаляет повторяющиеся строки.
  • См. также оператор UNION ALL.

Пример возвращающий одно поле

Рассмотрим пример оператора UNION SQL Server, который возвращает одно поле из нескольких операторов SELECT (и оба поля имеют одинаковый тип данных).
Например:

В этом примере SQL Server UNION, если поле product_id находится как в products, так и в inventory таблицах, он появится один раз в вашем результирующем наборе. Оператор UNION удаляет дубликаты в SQL Server. Если вы не хотите удалять дубликаты, попробуйте использовать оператор UNION ALL.

Пример использования ORDER BY

Оператор UNION может использовать предложение ORDER BY для сортировки результатов запроса в SQL Server (Transact-SQL).
Например:

В этом примере UNION, поскольку имена столбцов различаются между двумя операторами SELECT, более выгодно ссылаться на столбцы в предложении ORDER BY по их позиции в наборе результатов. В этом примере мы отсортировали результаты по contact_name / company_name в порядке возрастания, как обозначено ORDER BY 2.

Поля result_name / company_name находятся позиции № 2 в результирующем наборе.