Z wyjątkiem i PRZECIĘCIE (Transact-SQL)

Zwraca wartooci distinct przez porównanie wyniki dwie kwerendy.

Z wyjątkiem zwraca różnych wartości z lewej strony kwerendy, które nie występują również na kwerendy po prawej.

Część wspólna zwraca różne wartości, które są zwracane przez kwerendy zarówno po lewej i prawej krawędzi część wspólna operand.

Podstawowe zasady łączenie dwóch zestawów wyników kwerend korzystających z wyjątkiem lub PRZECIĘCIE, są następujące:

  • Numer i kolejność kolumn muszą być takie same we wszystkich kwerend.

  • Typy danych muszą być zgodne.

Ikona łącza do tematuJęzyka Transact-SQL składni konwencje

Składnia

{ <query_specification> | ( <query_expression> ) } 
{ EXCEPT | INTERSECT }
{ <query_specification> | ( <query_expression> ) }

Argumenty

  • <query_specification> | ( <query_expression> )
    Jest specyfikacja kwerendy lub kwerendy wyrażenie , które zwraca dane do porównania z danymi z innej kwerendy specyfikacji kwerendy lub wyrażenie.Definicje kolumn, które są częścią oprócz lub przecinają się operacja musi być taka sama, ale muszą być porównywalne dzięki niejawna konwersja.Różne typy danych, typ, który jest używany do wykonywania porównania i zwracają wyniki jest określana na podstawie reguł dla Typ danych pierwszeństwo przed.

    Gdy typy są takie same, ale różnią się precyzja, skala lub długość, wynik jest określana na podstawie tych samych reguł, do łączenia wyrażeń.Aby uzyskać więcej informacji, zobacz Precyzja, skala i długość (Transact-SQL).

    Specyfikacja kwerendę lub wyrażenie nie może zwrócić xml, text, ntext, image, lub Niebinarnych zdefiniowany przez użytkownika typ CLR kolumny, ponieważ te typy danych nie są porównywalne.

  • Z WYJĄTKIEM
    Zwraca różnych wartości kwerendy lewy operand oprócz, które nie są zwracane również z kwerendy po prawej.

  • CZĘŚĆ WSPÓLNA
    Zwraca wartooci distinct, które są zwracane przez kwerendy zarówno po lewej i prawej krawędzi część wspólna operand.

Uwagi

Typy danych porównywalnych kolumn, które są zwracane przez kwerendy do lewej i prawej stronie oprócz lub część wspólna operandy są znakowych typów danych z różnych ustawień sortowania, zgodnie z zasadami wykonywane jest porównanie wymagane prioryteciesortowanie.Jeśli nie można wykonać tej konwersji, Aparat baz danych programu SQL Server zwraca błąd.

Podczas porównywania wierszy dla określenia wartości distinct dwie wartości NULL są uznawane za równe.

Nazwy kolumna zestaw wyników , które są zwracane przez oprócz lub część wspólna są takie same nazwy jak zwracanych przez kwerendę po lewej stronie operandu.

Nazwy kolumn lub aliasy w klauzulach ORDER BY musi odwoływać się nazwy kolumna zwracanych przez kwerendę po lewej stronie.

opcje dopuszczania wartości null dowolnej kolumna w zestaw wyników zwrócone przez oprócz lub część wspólna jest taka sama, jak opcje dopuszczania wartości null odpowiednich kolumna zwracanych przez kwerendę po lewej stronie operandu.

Jeżeli, z wyjątkiem lub część wspólna jest używana razem z innym podmiotom w wyrażenie, jest oceniane w kontekście następującej kolejności:

  1. Wyrażenia w nawiasach

  2. Operand część wspólna

  3. Z wyjątkiem Unii i przetwarzane od lewej do prawej na podstawie ich położenia w wyrażenie

Jeżeli, z wyjątkiem lub część wspólna służy do porównywania więcej niż dwa zestawy kwerend, konwersja typu danych jest ustalane przez porównanie dwóch kwerendy w czasi w następstwie wspomnianych reguł wyrażenie .

Z wyjątkiem i PRZECIĘCIE nie może być używany w definicji rozproszony widok partycjonowany , powiadomień kwerendy lub wraz z obliczeń i COMPUTE BY klauzule.

Z wyjątkiem i PRZECIĘCIE mogą być używane w kwerendami rozproszonymi, ale są tylko wykonywany na serwerze lokalnym i nie jest wysyłany do serwer połączony.W związku z tym, korzystając z wyjątkiem i przecinają się w kwerendami rozproszonymi mogą wpłynąć na wydajność.

Kursory Fast tylko do przodu i statyczne są w pełni obsługiwane w zestaw wyników są używane z oprócz lub przecinają się operacji.Jeśli napędzane zestawu kluczy lub dynamicznych kursor jest używana razem z oprócz lub WYKONAM operację kursor zestaw wyników operacji jest konwertowany na statyczne kursor.

Podczas operacji oprócz jest wyświetlany przy użyciu funkcji graficznych Showplan w SQL Server Management Studio, operacja jest wyświetlany jako po lewej stronie anty-półtłustego łączyć, WYKONAM operację pojawia się jako półtłustego lewe łączyć.

Przykłady

Następujące przykłady przedstawiają za pomocą INTERSECT i EXCEPT operandów.Pierwszy kwerenda zwraca wszystkie wartości z Production.Product tabela dla porównania z wyniki z INTERSECT i EXCEPT.

USE AdventureWorks2008R2;
GO
SELECT ProductID 
FROM Production.Product ;
--Result: 504 Rows

Następująca kwerenda zwraca różne wartości, które są zwracane przez kwerendy zarówno na lewej i prawej krawędzi INTERSECT operand.

USE AdventureWorks2008R2;
GO
SELECT ProductID 
FROM Production.Product
INTERSECT
SELECT ProductID 
FROM Production.WorkOrder ;
--Result: 238 Rows (products that have work orders)

Następująca kwerenda zwraca różnych wartości z kwerendy po lewej stronie EXCEPT operand, również nie znajdują się na prawo kwerendy.

USE AdventureWorks2008R2;
GO
SELECT ProductID 
FROM Production.Product
EXCEPT
SELECT ProductID 
FROM Production.WorkOrder ;
--Result: 266 Rows (products without work orders)

Następująca kwerenda zwraca różnych wartości z kwerendy po lewej stronie EXCEPT operand, również nie znajdują się na prawo kwerendy.Tabele są wycofywane z poprzedniego przykładu.

USE AdventureWorks2008R2;
GO
SELECT ProductID 
FROM Production.WorkOrder
EXCEPT
SELECT ProductID 
FROM Production.Product ;
--Result: 0 Rows (work orders without products)