UNION ALL SQL Server

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

Описание

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

Каждый оператор SELECT в операторе SQL Server UNION ALL должен иметь одинаковое количество полей в наборах результатов с похожими типами данных.

Синтаксис

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

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

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

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

Примечание

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

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

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

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

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

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

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

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