Select union sql: UNION (Transact-SQL) — SQL Server
Содержание
Секция UNION | ClickHouse Docs
Вы можете использовать UNION
в двух режимах: UNION ALL
или UNION DISTINCT
.
Если UNION
используется без указания ALL
или DISTINCT
, то его поведение определяется настройкой union_default_mode
. Разница между UNION ALL
и UNION DISTINCT
в том, что UNION DISTINCT
выполняет явное преобразование для результата объединения. Это равнозначно выражению SELECT DISTINCT
из подзапроса, содержащего UNION ALL
.
Чтобы объединить любое количество SELECT
запросов путем объединения их результатов, вы можете использовать UNION
. Пример:
SELECT CounterID, 1 AS table, toInt64(count()) AS c
FROM test.hits
GROUP BY CounterIDUNION ALL
SELECT CounterID, 2 AS table, sum(Sign) AS c
FROM test.visits
GROUP BY CounterID
HAVING c > 0
Результирующие столбцы сопоставляются по их индексу (порядку внутри SELECT
). Если имена столбцов не совпадают, то имена для конечного результата берутся из первого запроса.
При объединении выполняет приведение типов. Например, если два запроса имеют одно и то же поле с не-Nullable
и Nullable
совместимыми типами, полученные в результате UNION
данные будут иметь Nullable
тип.
Запросы, которые являются частью UNION
, могут быть заключены в круглые скобки. ORDER BY и LIMIT применяются к отдельным запросам, а не к конечному результату. Если вам нужно применить преобразование к конечному результату, вы можете разместить все объединенные с помощью UNION
запросы в подзапрос в секции FROM.
Если используете UNION
без явного указания UNION ALL
или UNION DISTINCT
, то вы можете указать режим объединения с помощью настройки union_default_mode, значениями которой могут быть ALL
, DISTINCT
или пустая строка. Однако если вы используете UNION
с настройкой union_default_mode
, значением которой является пустая строка, то будет сгенерировано исключение. В следующих примерах продемонстрированы результаты запросов при разных значениях настройки.
Запрос:
SET union_default_mode = 'DISTINCT';
SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 2;
Результат:
┌─1─┐
│ 1 │
└───┘
┌─1─┐
│ 2 │
└───┘
┌─1─┐
│ 3 │
└───┘
Запрос:
SET union_default_mode = 'ALL';
SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 2;
Результат:
┌─1─┐
│ 1 │
└───┘
┌─1─┐
│ 2 │
└───┘
┌─1─┐
│ 2 │
└───┘
┌─1─┐
│ 3 │
└───┘
Запросы, которые являются частью UNION/UNION ALL/UNION DISTINCT
, выполняются параллельно, и их результаты могут быть смешаны вместе.
Смотрите также
- Настройка insert_null_as_default.
- Настройка union_default_mode.
База Данных MySQL UNION Оператор
HTML5CSS.ru
ЛУЧШИЙ САЙТ ДЛЯ РАЗРАБОТЧИКОВ
❮ Назад
Дальше ❯
Оператор Union SQL
Оператор UNION используется для объединения результирующего набора двух или более инструкций SELECT.
- Каждая инструкция SELECT внутри Union должна иметь одинаковое количество столбцов
- Столбцы также должны иметь схожие типы данных
- Столбцы в каждой инструкции SELECT также должны быть в том же порядке
UNION Синтаксис
SELECT column_name(s) FROM table1
UNION
SELECT column_name(s) FROM table2;
UNION ALL Синтаксис
Оператор Union выбирает по умолчанию только отдельные значения. Чтобы разрешить повторяющиеся значения, используйте объединение ALL:
SELECT column_name(s) FROM table1
UNION ALL
SELECT column_name(s) FROM table2;
Примечание: Имена столбцов в результирующем наборе обычно равны именам столбцов в первой инструкции SELECT в Union.
Демонстрационная база данных
В этом учебнике мы будем использовать хорошо известную базу данных Northwind Sample.
Ниже представлен выбор из таблицы «Customers»:
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
1 | Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | 12209 | Germany |
2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México D.F. | 05021 | Mexico |
3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | 05023 | Mexico |
И выбор из таблицы «Поставщики»:
SupplierID | SupplierName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
1 | Exotic Liquid | Charlotte Cooper | 49 Gilbert St. | London | EC1 4SD | UK |
2 | New Orleans Cajun Delights | Shelley Burke | P.O. Box 78934 | New Orleans | 70117 | USA |
3 | Grandma Kelly’s Homestead | Regina Murphy | 707 Oxford Rd. | Ann Arbor | 48104 | USA |
Пример объединения SQL
Следующая инструкция SQL выбирает все различные города (только отдельные значения) от «Customers» и «поставщики»:
Пример
SELECT City FROM Customers
UNION
SELECT City FROM Suppliers
ORDER BY City;
Примечание: Если некоторые клиенты или поставщики имеют один и тот же город, то каждый город будет указан только один раз, поскольку Union выбирает только отдельные значения. Используйте UNION ALL для выбора повторяющихся значений!
SQL UNION все примеры
Следующая инструкция SQL выбирает все города (повторяющиеся значения также) от «Customers» и «поставщики»:
Пример
SELECT City FROM Customers
UNION ALL
SELECT City FROM Suppliers
ORDER BY City;
SQL UNION с где
Следующая инструкция SQL выбирает все различные немецкие города (только отдельные значения) от «Customers» и «поставщики»:
Пример
SELECT City, Country FROM Customers
WHERE Country=’Germany’
UNION
SELECT City, Country FROM Suppliers
WHERE Country=’Germany’
ORDER BY City;
SQL UNION все с где
Следующая инструкция SQL выбирает все немецкие города (повторяющиеся значения также) от «Customers» и «поставщики»:
Пример
SELECT City, Country FROM Customers
WHERE Country=’Germany’
UNION ALL
SELECT City, Country FROM Suppliers
WHERE Country=’Germany’
ORDER BY City;
Другой пример объединения
В следующей инструкции SQL перечислены все клиенты и поставщики:
Пример
SELECT ‘Customer’ As Type, ContactName, City, Country
FROM Customers
UNION
SELECT ‘Supplier’, ContactName, City, Country
FROM Suppliers;
❮ Назад
Дальше ❯
PHP\CSS\JS\HMTL Editor
Copyright 2018-2020 HTML5CSS. ru
Правила и Условия Политика конфиденциальности
О нас
Контакты
Оператор SQL UNION
❮ Предыдущий
Далее ❯
Оператор SQL UNION
Оператор UNION
используется для объединения набора результатов двух или более
ВЫБЕРИТЕ
заявления.
- Каждая инструкция
SELECT
внутри
UNION
должен иметь тот же номер
колонн - Столбцы также должны иметь похожие типы данных
- Столбцы в
каждый операторSELECT
также должен быть в том же порядке
Синтаксис UNION
SELECT имя_столбца(ов) FROM таблица1
UNION
SELECT имя_столбца(ов) FROM таблица2 ;
UNION ALL Синтаксис
Оператор UNION
по умолчанию выбирает только отдельные значения. Позволять
повторяющиеся значения, используйте UNION ALL
:
SELECT имя_столбца(ов) FROM table1
UNION ALL
SELECT имя_столбца(ов) FROM таблица2 ;
Примечание: Имена столбцов в результирующем наборе обычно равны
имена столбцов в первом операторе SELECT
.
Демонстрационная база данных
В этом руководстве мы будем использовать известную учебную базу данных Northwind.
Ниже представлена выборка из таблицы «Клиенты»:
CustomerID | ИмяКлиента | Контактное имя | Адрес | Город | Почтовый индекс | Страна |
---|---|---|---|---|---|---|
1 | Альфред Футтеркисте | Мария Андерс | ул. Обере 57 | Берлин | 12209 | Германия |
2 | Ана Трухильо Emparedados y helados | Ана Трухильо | Авда. Конститусьон 2222 | Мексика Д.Ф. | 05021 | Мексика |
3 | Антонио Морено Такерия | Антонио Морено | Матадерос 2312 | Мексика Д.Ф. | 05023 | Мексика |
И выбор из таблицы «Поставщики»:
SupplierID | Название поставщика | Контактное имя | Адрес | Город | Почтовый индекс | Страна |
---|---|---|---|---|---|---|
1 | Экзотическая жидкость | Шарлотта Купер | ул. Гилберта, 49 | Лондон | ЭК1 4СД | Великобритания |
2 | Новый Орлеан Cajun Delights | Шелли Берк | Почтовый индекс Коробка 78934 | Новый Орлеан | 70117 | США |
3 | Усадьба бабушки Келли | Регина Мерфи | 707 Оксфорд Роуд. | Анн-Арбор | 48104 | США |
SQL UNION Пример
Следующая инструкция SQL возвращает города
(только разные значения) из таблиц «Клиенты» и «Поставщики»:
Пример
ВЫБЕРИТЕ город ИЗ клиентов
СОЮЗ
ВЫБЕРИТЕ город ИЗ поставщиков
ORDER BY City;
Попробуйте сами »
Примечание: Если у некоторых клиентов или поставщиков один и тот же город, каждый город будет
указан один раз, потому что UNION
выбирает только отдельные значения. Использовать
UNION ALL
также выбрать
повторяющиеся значения!
SQL UNION ALL Пример
Следующая инструкция SQL возвращает города
(также повторяющиеся значения) из таблиц «Клиенты» и «Поставщики»:
Пример
ВЫБЕРИТЕ Город ИЗ Клиентов
ОБЪЕДИНЕНИЕ ВСЕ
ВЫБЕРИТЕ Город ИЗ Поставщиков
ЗАКАЗ ПО ГОРОДУ;
Попробуйте сами »
SQL UNION With WHERE
Следующая инструкция SQL возвращает города Германии.
(только разные значения) из таблиц «Клиенты» и «Поставщики»:
Пример
ВЫБЕРИТЕ город, страну ИЗ клиентов
ГДЕ Страна=’Германия’
СОЮЗ
ВЫБЕРИТЕ город, страну ИЗ поставщиков
ГДЕ Страна=’ Германия’
ЗАКАЗАТЬ ПО ГОРОДУ;
Попробуйте сами »
SQL UNION ALL With WHERE
Следующая инструкция SQL возвращает немецкие города (также повторяющиеся значения) из
таблица «Клиенты» и «Поставщики»:
Пример
ВЫБЕРИТЕ город, страну ИЗ клиентов
ГДЕ Страна=’Германия’
ОБЪЕДИНЕНИЕ ВСЕ
ВЫБЕРИТЕ город, страну ИЗ поставщиков
ГДЕ Страна=’Германия’
ЗАКАЗАТЬ ПО Город;
Попробуйте сами »
Другой пример UNION
Следующая инструкция SQL перечисляет всех клиентов и поставщиков:
Пример
ВЫБЕРИТЕ ‘Клиент’ AS Type, ContactName, City, Country
FROM Customers
UNION
SELECT ‘Supplier’, ContactName, City, Country
FROM Suppliers;
Попробуйте сами »
Обратите внимание на «Тип AS» выше — это псевдоним. SQL
Псевдонимы используются для присвоения таблице или столбцу временного имени.
Псевдоним существует только на время выполнения запроса. Итак, вот мы создали
временный столбец с именем «Тип», в котором указано, является ли контактное лицо
«Заказчик» или «Поставщик».
❮ Предыдущий
Далее ❯
НОВИНКА
Мы только что запустили
Видео W3Schools
Узнать
ВЫБОР ЦВЕТА
КОД ИГРЫ
Играть в игру
Лучшие учебники
Учебник по HTML
Учебник по CSS
Учебник по JavaScript
Учебник How To
Учебник по SQL
Учебник по Python
Учебник по W3.CSS
Учебник по Bootstrap
Учебник по PHP
Учебник по Java
Учебник по C++
Учебник по jQuery
Лучшие ссылки
Справочник по HTML
Справочник по CSS
Справочник по JavaScript
Справочник по SQL
Справочник по Python
Справочник по W3. CSS
Справочник по Bootstrap
Справочник по PHP
Цвета HTML
Справочник по Java
Справочник по Angular
Справочник по jQuery
Top7 Examples
Примеры HTML
Примеры CSS
Примеры JavaScript
Примеры инструкций
Примеры SQL
Примеры Python
Примеры W3.CSS
Примеры Bootstrap
Примеры PHP
Примеры Java
Примеры XML
Примеры jQuery
FORUM |
О
W3Schools оптимизирован для обучения и обучения. Примеры могут быть упрощены для улучшения чтения и обучения.
Учебники, ссылки и примеры постоянно пересматриваются, чтобы избежать ошибок, но мы не можем гарантировать полную правильность всего содержания.
Используя W3Schools, вы соглашаетесь прочитать и принять наши условия использования,
куки-файлы и политика конфиденциальности.
Авторское право 1999-2022 по данным Refsnes. Все права защищены.
W3Schools работает на основе W3.CSS.
Лучший способ объединения запросов SQL [обновлено]
В большинстве случаев для извлечения полезной информации в реальных приложениях требуются данные из нескольких таблиц. SQL предоставляет для этого несколько инструментов, и одним из таких инструментов является оператор SQL UNION. Это используется для объединения результатов двух команд выбора, выполненных для столбцов из разных таблиц.
Что такое UNION в SQL?
Оператор UNION используется для объединения данных из результатов двух или более командных запросов SELECT в один отдельный набор результатов. Этот оператор удаляет любые дубликаты, присутствующие в объединяемых результатах.
Чтобы понять этот оператор, давайте разберемся в его синтаксисе.
Синтаксис для использования оператора SQL UNION
ВЫБРАТЬ столбец_1, столбец_2,… столбец_n ИЗ таблицы_1 СОЮЗ ВЫБРАТЬ столбец_1, столбец_2,… столбец_n ИЗ таблицы_2; |
- Количество столбцов, извлекаемых каждой командой SELECT в рамках UNION, должно быть одинаковым.
- Столбцы в одной и той же позиции в каждом операторе SELECT должны иметь одинаковые типы данных. Например, «char» и «varchar» — это идентичные типы данных.
- Столбцы должны быть в правильном порядке в инструкциях SELECT.
Применим этот оператор к разным столбцам таблиц.
В качестве примера возьмем следующую таблицу «Employee_dept»:
Другая таблица, «Менеджер», например:
Чтобы определить, к каким городам принадлежат сотрудники и менеджеры из двух вышеприведенных таблиц, мы будем использовать следующий запрос:
Это приведет к следующему:
Это показывает, что в результате нет копий. Имя столбца результата — «Город», так как результат занимает имена столбцов первого оператора SELECT.
Использование UNION для нескольких полей
Мы можем применить UNION к нескольким столбцам, а также упорядочить результаты с помощью оператора ORDER BY в конце.
Чтобы получить имя и отдел каждого сотрудника и менеджера из двух приведенных выше примеров таблиц, используйте следующий код:
Это приведет к следующему:
Результат сортируется по «Dept_ID».
Мы также можем фильтровать строки, извлекаемые каждым оператором SELECT. Давайте посмотрим, как это делается.
Использование предложения Where с оператором UNION
Мы можем использовать предложение WHERE в одном или обоих операторах SELECT, чтобы отфильтровать объединяемые строки.
- Чтобы получить имена сотрудников и менеджеров и зарплаты, которые превышают 60 000, из таблиц «Employee_dept» и «Manager», мы введем следующее:
Это приведет к следующему:
- Мы также можем использовать предложение WHERE только в одном из операторов SELECT в UNION.
Чтобы найти имена и адреса всех менеджеров в наборе данных и всех сотрудников, имеющих «Dept_ID», равный 1003:
Это приведет к следующему:
Использование UNION с псевдонимами
Псевдонимы SQL — это временные имена, присвоенные таблицам или столбцам. Эти псевдонимы существуют только на время запроса, в котором они используются. Мы используем оператор «AS» для создания псевдонимов.
Например, мы будем использовать следующий запрос, чтобы получить всю информацию о сотрудниках и менеджерах, и мы классифицируем их в соответствии с их ролями.
В приведенном выше запросе мы создали временный столбец с пометкой «Тип», который будет использоваться для классификации информации как информации о сотрудниках или менеджерах.
Результат приведенного выше запроса:
Руководители помечены как «Менеджер», а их подчиненные — как «Сотрудник» во временной колонке «Тип» результата UNION.
Псевдонимы помогают в создании упорядоченных результатов таблицы.
СОЮЗ ВСЕ Оператор
Оператор UNION не допускает дубликатов. Мы можем использовать оператор UNION ALL, если хотим, чтобы дубликаты присутствовали в комбинации двух или более операторов SELECT.
Этот оператор SQL подчиняется тем же правилам, что и оператор UNION, за исключением использования в синтаксисе ключевого слова UNION ALL вместо ключевого слова UNION.
Например, если нам нужен список всех городов (включая дубликаты) из наших таблиц «Employee_dept» и «Manager», мы будем использовать следующий запрос:
Это приведет к следующему:
Как мы видим, результат содержит все города, включая все дубликаты.
На этом мы подошли к концу этой статьи об операторе UNION.
Начните свою карьеру с нашей программы PGP по бизнес-анализу. Получите возможность освоить инструменты Excel, Tableau и Python. Начните учиться прямо сейчас!
Следующие шаги
Если мы помним все правила и синтаксис оператора SQL UNION, объединение результатов запроса становится легкой задачей. Используя эти знания, мы можем добиться самых разных результатов и получить очень полезную информацию.
Теперь, когда вы знаете, как использовать оператор UNION, пришло время начать запрашивать и манипулировать всеми видами наборов данных, извлекать из них полезную информацию и шаблоны и продвигаться вперед на своем пути к тому, чтобы стать экспертом по SQL.