T-SQL Tutorial

T-SQL EXCEPT operator


The SQL Server EXCEPT operator is used to compare two or more sets of data and return the distinct values from the first set that are not present in the other set(s). In other words, it returns the difference between two or more result sets.


Syntax

The syntax for the EXCEPT operator in SQL Server is as follows:

SELECT column1, column2, ...
FROM table1
EXCEPT
SELECT column1, column2, ...
FROM table2;

In this syntax, "column1, column2, ..." represents the columns to be returned, "table1" represents the first table or result set, and "table2" represents the second table or result set. The EXCEPT operator is used to exclude the rows in the second result set from the first result set.


Example

Here's an example that demonstrates how to use the EXCEPT operator in SQL Server:

SELECT ProductName
FROM Products
EXCEPT
SELECT ProductName
FROM OrderDetails;

This SQL query returns the distinct ProductName values from the Products table that are not present in the OrderDetails table.

It's worth noting that the EXCEPT operator only returns distinct rows from the first result set. If there are any duplicate rows in the first result set, they will be returned only once in the output. Additionally, the column names and data types must match in both result sets, otherwise, the SQL Server will return an error.

In summary, the SQL Server EXCEPT operator is a useful tool for comparing two or more sets of data and returning the distinct values from the first set that are not present in the other set(s). It can be a powerful tool for data analysis and reporting in SQL Server.