Галерея
7757 8119 8300 8698 8817 9504 9722 9937
Интересные записи
Топовые новости
Новое

Оператор для наборов данных EXCEPT

Оператор EXCEPT возвращает результирующий набор для двух или более запросов, включающий в себя все записи, полученные первым запросом, которые не обнаруживаются в результатах последующих запросов. Если предложения JOIN используются для получения общих строк для двух и более запросов, предложение EXCEPT используется для отфильтровывания записей, которые присутствуют только в одной из нескольких сходных таблиц.

EXCEPT относится к классу ключевых слов, называемых операторами для наборов данных (set operator). К другим таким операторам относятся INTERSECT и UNION. (Оператор MINUS — это эквивалент EXCEPT в Oracle; стандарт ANSI использует слово EXCEPT.) Все операторы для работы с наборами используются для манипулирования с результирующими наборами сразу нескольких запросов, отсюда и «оператор для наборов».


Синтаксис SQL 2003

Технически не существует ограничений на число запросов, которые можно объединить в операторе EXCEPT. Общий синтаксис следующий.

{SELECT инструкция1 | VALUES (выраж1 [, …])} EXCEPT [ALL | DISTINCT]

[CORRESPONDING [BY (столбец1, столбец2, …)]] {SELECT инструкция2 | VALUES (выраж2 [, …])}

EXCEPT [ALL | DISTINCT]

[CORRESPONDING [BY (столбец1, столбец2, …)]]


Ключевые слова

VALUES (выраж1 [, …])

Генерируется производный набор данных при помощи явно указанных значений выраж1, выраж2 и тому подобное. Это по сути результирующий набор данных инструкции SELECT без синтаксиса SELECT … FROM. Это также называется конструктором строк, поскольку строки результирующего набора конструируются вручную. Согласно стандарту ANSI несколько определенных в конструкторе вручную строк необходимо разделить запятыми и заключить в скобки.

EXCEPT

Определяется, какие строки будут исключены из одного набора данных.

ALL

Учитываются дублирующие строки во всех результирующих наборах.

DISTINCT

Дублирующиеся строки удаляются из всех результирующих наборов перед сравнением в предложении EXCEPT. Столбцы, содержащие значения NULL, считаются дублирующимися. (Если не указаны ключевые слова ALL или DISTINCT, по умолчанию используется DISTINCT.)

CORRESPONDING [BY (столбец!, столбец2, …)

Определяется, что возвращаться будут только столбцы с указанными именами, даже если в одном или нескольких запросах используется сокращение в виде звездочки.

Источник