Jump into concepts and practice - no test required
or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Recall & Review
beginner
What does the SQL EXCEPT operator do?
The EXCEPT operator returns rows from the first query that are not present in the second query. It shows the difference between two result sets.
Click to reveal answer
beginner
How is EXCEPT different from UNION in SQL?
UNION combines rows from two queries, removing duplicates, while EXCEPT returns only rows from the first query that do not appear in the second.
Click to reveal answer
intermediate
Which SQL keyword is equivalent to EXCEPT in some databases like Oracle?
MINUS is equivalent to EXCEPT in Oracle and some other databases. Both return the difference between two queries.
Click to reveal answer
intermediate
Can EXCEPT be used with queries that return different columns?
No, both queries must return the same number of columns with compatible data types for EXCEPT to work.
Click to reveal answer
beginner
What happens if you use EXCEPT and the second query returns rows not in the first query?
Those rows are ignored because EXCEPT only returns rows from the first query that are missing in the second.
Click to reveal answer
What does the EXCEPT operator return in SQL?
ARows in the first query but not in the second
BRows common to both queries
CAll rows from both queries combined
DRows in the second query but not in the first
✗ Incorrect
EXCEPT returns rows from the first query that do not appear in the second query.
Which SQL keyword is similar to EXCEPT in Oracle?
AMINUS
BUNION
CINTERSECT
DJOIN
✗ Incorrect
MINUS in Oracle works like EXCEPT, showing rows in the first query not in the second.
What must be true about the columns in queries used with EXCEPT?
AColumns must be named the same
BThey can have different numbers of columns
CThey must have the same number and compatible data types
DOnly the first column must match
✗ Incorrect
Both queries must return the same number of columns with compatible types for EXCEPT to work.
If the second query returns rows not in the first, what does EXCEPT return?
AThose rows only
BAll rows from both queries
CNo rows
DRows from the first query missing in the second
✗ Incorrect
EXCEPT returns only rows from the first query that are missing in the second.
Which of these is NOT a set operation in SQL?
AMINUS
BSELECT
CUNION
DEXCEPT
✗ Incorrect
SELECT is a basic query, not a set operation like EXCEPT, MINUS, or UNION.
Explain how the EXCEPT operator works in SQL and when you might use it.
Think about comparing two lists and finding what is unique to the first.
You got /3 concepts.
Describe the difference between EXCEPT and UNION in SQL.
One combines, the other subtracts.
You got /3 concepts.
Practice
(1/5)
1. What does the SQL EXCEPT operator do?
easy
A. Returns rows from the first query that are not in the second query
B. Returns rows common to both queries
C. Combines all rows from both queries including duplicates
D. Deletes rows from the first table that exist in the second
Solution
Step 1: Understand the purpose of EXCEPT
The EXCEPT operator compares two query results and returns only those rows that appear in the first query but not in the second.
Step 2: Differentiate from other set operations
Unlike INTERSECT which returns common rows, EXCEPT returns unique rows from the first set only.
Final Answer:
Returns rows from the first query that are not in the second query -> Option A
Quick Check:
EXCEPT = difference = unique first query rows [OK]
Hint: EXCEPT returns what first query has but second does not [OK]
Common Mistakes:
Confusing EXCEPT with INTERSECT
Thinking EXCEPT deletes rows
Assuming EXCEPT returns all combined rows
2. Which of the following is the correct syntax to find rows in table1 not in table2 using EXCEPT?
easy
A. SELECT * FROM table1 WHERE NOT IN table2;
B. SELECT * FROM table1 MINUS table2;
C. SELECT * FROM table1 EXCEPT SELECT * FROM table2;
D. SELECT * FROM table1 JOIN table2 EXCEPT;
Solution
Step 1: Recall correct EXCEPT syntax
The EXCEPT operator is used between two SELECT statements: SELECT ... FROM ... EXCEPT SELECT ... FROM ....
Step 2: Check each option
SELECT * FROM table1 EXCEPT SELECT * FROM table2; uses correct syntax with two SELECT statements separated by EXCEPT. SELECT * FROM table1 MINUS table2; is incorrect because MINUS requires SELECT before both tables. SELECT * FROM table1 WHERE NOT IN table2; is invalid syntax. SELECT * FROM table1 JOIN table2 EXCEPT; misuses JOIN and EXCEPT.
Final Answer:
SELECT * FROM table1 EXCEPT SELECT * FROM table2; -> Option C
Hint: EXCEPT goes between two SELECT queries, no JOIN needed [OK]
Common Mistakes:
Using EXCEPT without two SELECT statements
Confusing MINUS syntax with EXCEPT
Trying to use EXCEPT with JOIN
3. Given these tables: table1: id 1 2 3
table2: id 2 4 5
What is the result of: SELECT id FROM table1 EXCEPT SELECT id FROM table2;
medium
A. [1, 3]
B. [2]
C. [4, 5]
D. [1, 2, 3, 4, 5]
Solution
Step 1: Identify rows in table1
table1 has ids 1, 2, 3.
Step 2: Identify rows in table2
table2 has ids 2, 4, 5.
Step 3: Apply EXCEPT logic
EXCEPT returns rows in table1 not in table2, so ids 1 and 3 remain.
Final Answer:
[1, 3] -> Option A
Quick Check:
table1 - table2 = [1, 3] [OK]
Hint: Subtract table2 rows from table1 rows [OK]
Common Mistakes:
Including ids from table2
Returning common ids instead
Confusing EXCEPT with UNION
4. What is wrong with this query? SELECT name FROM employees EXCEPT name FROM managers;
medium
A. EXCEPT cannot be used with column names
B. Missing SELECT keyword before second query
C. Syntax requires JOIN instead of EXCEPT
D. No error, query is correct
Solution
Step 1: Check syntax of EXCEPT usage
EXCEPT requires two full SELECT statements. The second query must start with SELECT.
Step 2: Identify error in given query
The second part is missing SELECT before name FROM managers, causing syntax error.
Final Answer:
Missing SELECT keyword before second query -> Option B
Quick Check:
EXCEPT needs two SELECTs [OK]
Hint: Always write SELECT before both queries with EXCEPT [OK]
Common Mistakes:
Omitting SELECT in second query
Using EXCEPT with columns only
Confusing EXCEPT with JOIN syntax
5. You have two tables: orders_2023 and orders_2024, both with columns order_id and customer_id.
You want to find all orders from 2023 that were NOT repeated in 2024.
Which query correctly finds these unique 2023 orders?
hard
A. SELECT order_id, customer_id FROM orders_2023 INTERSECT SELECT order_id, customer_id FROM orders_2024;
B. SELECT order_id, customer_id FROM orders_2024 EXCEPT SELECT order_id, customer_id FROM orders_2023;
C. SELECT order_id, customer_id FROM orders_2023 UNION SELECT order_id, customer_id FROM orders_2024;
D. SELECT order_id, customer_id FROM orders_2023 EXCEPT SELECT order_id, customer_id FROM orders_2024;
Solution
Step 1: Understand the requirement
We want orders in 2023 that do NOT appear in 2024.
Step 2: Choose correct set operation
EXCEPT returns rows in first query not in second, so orders_2023 EXCEPT orders_2024 fits.
Step 3: Check other options
SELECT order_id, customer_id FROM orders_2024 EXCEPT SELECT order_id, customer_id FROM orders_2023; reverses order, giving 2024 unique orders. SELECT order_id, customer_id FROM orders_2023 INTERSECT SELECT order_id, customer_id FROM orders_2024; returns common orders. SELECT order_id, customer_id FROM orders_2023 UNION SELECT order_id, customer_id FROM orders_2024; combines all orders.
Final Answer:
SELECT order_id, customer_id FROM orders_2023 EXCEPT SELECT order_id, customer_id FROM orders_2024; -> Option D
Quick Check:
2023 orders minus 2024 orders = unique 2023 orders [OK]
Hint: Use EXCEPT with 2023 first, 2024 second to find unique 2023 orders [OK]