Эти операторы предназначены для осуществления горизонтального объединения двух и более множеств строк. При горизонтальных объединениях количество столбцов в объединяемых множествах строк должно быть одинаковым, а типы данных для соответствующих столбцов должны быть совместимы или неявно приводимы один к другому.
Оператор UNION [ALL] выполняет простое объединение двух множеств строк, причем использование опции ALL приводит к тому, что дублирующиеся строки сохраняются, в противном случае – из каждого набора дублирующихся строк остается только одна.
Операторы EXCEPT и INTERSECT не могут использоваться со столбцами (выражениями), которые имеют типы данных xml, text, ntext, image, а также пользовательские типы данных, которые не приводимы к типу varbinary. Использование этих операторов допустимо, если уровень совместимости для БД выставлен в значение 90. Если используется секция ORDER BY, то в ней должны использоваться имена столбцов из запроса SELECT левой части оператора EXCEPT или INTERSECT.
С помощью оператора EXCEPT выбираются неповторяющиеся строки из результирующего множества строк «левого» запроса, которые отсутствуют в результирующем множестве строк «правого» запроса.
С помощью оператора INTERSECT выбираются неповторяющиеся строки из результирующего множества строк «левого» запроса, которые входят и в результирующее множество строк «правого» запроса.