Оператор UNION объединяет несколько результирующих наборов. По умолчанию в результат оператора UNION включены все строки исходных наборов, кроме повторяющихся. Повторяющиеся в наборах строки представлены в результирующем наборе одним экземпляром
Хотя каждый оператор SELECT может иметь собственное предложение WHERE, весь запрос может использовать только одно предложение ORDER BY. Оно должно располагаться в последнем операторе SELECT и применяться ко всему результату.
Пример:
Вычислить надбавку 15% от Оклада, если оклад меньше 5000 и 10% от Оклада, если оклад от 5000 до 7000.
SELECT Табельный номер, Оклад, 0,15*Оклад AS Надбавка FROM СП_СЛ WHERE Оклад<5000 UNION SELECT Табельный номер, Оклад, 0,1*Оклад AS Надбавка FROM СП_СЛ WHERE Оклад BETWEEN 5000 AND 7000 ORDER BY 1
Оператор INTERSECT возвращает все совпадающие строки исходных наборов
Пример:
Список однофамильцев в двух лабораториях 110 и 100
SELECT ФАМИЛИЯ FROM СП_СЛ WHERE Код лаборатории=’110’ INTERSECT SELECT ФАМИЛИЯ FROM СП_СЛ WHERE Код лаборатории=’100’
Оператор EXCEPT возвращает разность двух наборов, то есть в результат включаются только те строки первого набора, которых нет во втором наборе.
Пример:
Список специальностей различающихся в двух лабораториях 110 и 100
SELECT Код специальности FROM СП_СЛ WHERE Код лаборатории=’110’ EXCEPT SELECT Код специальности FROM СП_СЛ WHERE Код лаборатории=’100’
Целесообразность включения операторов INERTSECT и EXCEPT в реляционную модель долго обсуждалось, однако широкого распространения они так и не получили. Это объясняется тем, что тех же целей можно достичь другими средствами.