🟢 Введение
Оператор UNION используется для объединения результатов двух (или более) SQL-запросов, возвращающих одинаковое количество столбцов.
Главная особенность: дубликаты удаляются по умолчанию.
Если нужны все строки, включая повторы — используется UNION ALL.
🔤 Написание
Синтаксис:
Условия:
Количество и порядок столбцов должны совпадать
Типы данных должны быть совместимыми
🔄 Где часто используется
Объединение данных из разных таблиц
Построение универсальных отчетов
Работа с архивами и текущими данными
Слияние результатов разных условий
Формирование наборов справочников
🧪 10 Примеров использования UNION с пояснениями
1️⃣ UNION без повторов
Список всех уникальных ID отделов из обеих таблиц.
2️⃣ UNION ALL (с повторами)
Объединение всех должностей, включая дубликаты.
3️⃣ UNION с фильтрацией
Сотрудники из отдела 10 + те, у кого высокая зарплата.
4️⃣ UNION с псевдонимами и выравниванием столбцов
Объединение сотрудников и клиентов с указанием источника.
5️⃣ UNION в представлении
Представление с уникальными должностями из текущей и исторической таблиц.
6️⃣ UNION в подзапросе
Проекты всех менеджеров, работающих сейчас или ранее.
7️⃣ UNION с ORDER BY (всего один раз, в конце)
Сортировка применяется только к финальному объединённому результату.
8️⃣ UNION и NULL
Добавляем строку с NULL в начало списка регионов.
9️⃣ UNION со строками и числами
Объединение числовых значений, приведённых к строке.
🔟 UNION для поиска в нескольких таблицах
Все уникальные бизнес-партнёры.
🧩 Заключение
UNION — мощный способ объединять данные из разных источников, при этом автоматически убирая дубликаты.
Если важна производительность и повторы допустимы — используйте UNION ALL.
💡 Советы:
Убедитесь, что столбцы и их типы совпадают
Используйте
ORDER BYтолько в конце объединённого запросаПрименяйте
UNIONдля интеграции и отчётности
🔜 Следующая статья:
Оператор INTERSECT в Oracle SQL — как найти пересечение результатов двух запросов