SQL > Advanced SQL > Minus

The MINUS command operates on two SQL statements. It takes all the results from the first SQL statement, and then subtract out the ones that are present in the second SQL statement to get the final result set. If the second SQL statement includes results not present in the first SQL statement, such results are ignored.

SQL MINUS returns only the distinct rows from the first query that do not appear in the second query — making it ideal for finding records exclusive to one dataset. Note that some databases use EXCEPT instead of MINUS.

Syntax

The syntax for MINUS is as follows:

[SQL Statement 1]
MINUS
[SQL Statement 2];

The columns selected in [SQL Statement 1] and [SQL Statement 2] need to be of the same data type for MINUS to work.

Example

We use the following tables for our example.

Table Store_Information

 Store_Name  Sales  Txn_Date 
 Los Angeles 1500  Jan-05-1999 
 San Diego 250  Jan-07-1999 
 Los Angeles 300  Jan-08-1999 
 Boston 700  Jan-08-1999 

Table Internet_Sales

 Txn_Date  Sales 
 Jan-07-1999  250 
 Jan-10-1999  535 
 Jan-11-1999  320 
 Jan-12-1999  750 

To find all the dates where there are store sales but no internet sales, we use the following SQL statement:

SELECT Txn_Date FROM Store_Information
MINUS
SELECT Txn_Date FROM Internet_Sales;

Result:

Txn_Date
Jan-05-1999
Jan-08-1999

'Jan-05-1999', 'Jan-07-1999';, and 'Jan-08-1999' are the distinct values returned from SELECT Txn_Date FROM Store_Information. Out of the three dates, 'Jan-07-1999' is also returned from the second SQL statement, SELECT Txn_Date FROM Internet_Sales, so it is excluded from the final result set.

Please note that the MINUS command will only return distinct values.

Some databases may use EXCEPT instead of MINUS. Please check the documentation for your specific database for the correct usage.

Frequently Asked Questions

What does SQL MINUS do?
SQL MINUS returns all distinct rows from the first SELECT statement that are not present in the results of the second SELECT statement, essentially performing a set subtraction.
Does MINUS return duplicate rows?
No. Like UNION and INTERSECT, MINUS automatically removes duplicate rows and returns only distinct values in the final result set.
What is the difference between MINUS and EXCEPT?
They are functionally identical. Oracle uses the keyword MINUS, while SQL Server, PostgreSQL, and other databases use EXCEPT to achieve the same result.
Can I use MINUS with tables that have different columns?
No. Both SELECT statements must return the same number of columns, and the corresponding columns must have compatible data types for MINUS to work correctly.

Next: SQL Limit

This page was last updated on March 19, 2026.




Copyright © 2026   1keydata.com   All Rights Reserved     Privacy Policy     About   Contact