Bird
Raised Fist0
SQLquery~20 mins

WHERE with AND operator in SQL - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
AND Operator Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ query_result
intermediate
2:00remaining
Filter employees by department and salary
Given a table Employees with columns id, name, department, and salary, what is the output of this query?

SELECT name FROM Employees WHERE department = 'Sales' AND salary > 50000;
SQL
CREATE TABLE Employees (id INT, name VARCHAR(50), department VARCHAR(50), salary INT);
INSERT INTO Employees VALUES
(1, 'Alice', 'Sales', 60000),
(2, 'Bob', 'Sales', 45000),
(3, 'Charlie', 'HR', 55000),
(4, 'Diana', 'Sales', 70000);
AAlice, Bob
BBob, Diana
CAlice, Diana
DCharlie, Diana
Attempts:
2 left
💡 Hint
Remember both conditions in the WHERE clause must be true for a row to be included.
📝 Syntax
intermediate
1:30remaining
Identify the syntax error in the WHERE clause
Which option contains a syntax error in the WHERE clause using AND operator?
SQL
SELECT * FROM Products WHERE price > 100 AND category = 'Electronics';
ASELECT * FROM Products WHERE price > 100 AND AND category = 'Electronics';
BSELECT * FROM Products WHERE price > 100 AND category = 'Electronics'
CSELECT * FROM Products WHERE price > 100 category = 'Electronics' AND;
DSELECT * FROM Products WHERE price > 100 AND category = 'Electronics';
Attempts:
2 left
💡 Hint
Look for repeated keywords or misplaced operators.
❓ optimization
advanced
2:00remaining
Optimize query with multiple AND conditions
You want to find customers from 'USA' who have made purchases over $1000 and have a loyalty status of 'Gold'. Which query is more efficient?
SQL
SELECT * FROM Customers WHERE country = 'USA' AND purchase_amount > 1000 AND loyalty_status = 'Gold';
AAll queries have the same efficiency.
BSELECT * FROM Customers WHERE purchase_amount > 1000 AND country = 'USA' AND loyalty_status = 'Gold';
CSELECT * FROM Customers WHERE country = 'USA' AND purchase_amount > 1000 AND loyalty_status = 'Gold';
DSELECT * FROM Customers WHERE loyalty_status = 'Gold' AND purchase_amount > 1000 AND country = 'USA';
Attempts:
2 left
💡 Hint
The order of AND conditions does not affect query results or efficiency in standard SQL.
🧠 Conceptual
advanced
2:00remaining
Understanding AND operator with NULL values
Consider a table Orders with a column shipped_date that can be NULL. What is the result of this query?

SELECT * FROM Orders WHERE shipped_date > '2023-01-01' AND shipped_date < '2023-12-31';

Will rows with shipped_date as NULL be included?
ANo, NULL values cause a syntax error in the query.
BNo, NULL values are excluded because comparisons with NULL return unknown.
CYes, NULL values are included because they satisfy both conditions.
DYes, NULL values are included because AND ignores NULLs.
Attempts:
2 left
💡 Hint
Think about how SQL treats NULL in logical conditions.
🔧 Debug
expert
2:30remaining
Debug the unexpected output with AND operator
A developer wrote this query:

SELECT * FROM Employees WHERE department = 'IT' AND salary > 70000 OR position = 'Manager';

They expect to get employees in IT with salary over 70000 and also all managers regardless of department or salary. But the output includes employees not matching these rules. What is the cause?
AThe OR operator has higher precedence than AND, so the query is evaluated incorrectly.
BThe query syntax is invalid because OR cannot be used with AND.
CThe query is missing a WHERE clause before OR.
DThe AND operator has higher precedence than OR, so parentheses are needed to group conditions properly.
Attempts:
2 left
💡 Hint
Consider operator precedence and how SQL evaluates AND and OR.

Practice

(1/5)
1. What does the WHERE clause with the AND operator do in an SQL query?
easy
A. Filters rows that meet any one of the conditions
B. Joins two tables together
C. Filters rows that meet all specified conditions
D. Sorts the result set in ascending order

Solution

  1. Step 1: Understand the WHERE clause

    The WHERE clause filters rows based on conditions given in the query.
  2. Step 2: Understand the AND operator

    The AND operator requires all conditions to be true for a row to be included.
  3. Final Answer:

    Filters rows that meet all specified conditions -> Option C
  4. Quick Check:

    WHERE + AND = all conditions true [OK]
Hint: AND means all conditions must be true together [OK]
Common Mistakes:
  • Thinking AND means any condition can be true
  • Confusing WHERE with JOIN
  • Assuming AND sorts data
2. Which of the following is the correct syntax to select rows where age is greater than 18 AND city is 'New York'?
easy
A. SELECT * FROM users WHERE age > 18 AND city = 'New York';
B. SELECT * FROM users WHERE age > 18, city = 'New York';
C. SELECT * FROM users WHERE age > 18 OR city = 'New York';
D. SELECT * FROM users WHERE age > 18 AND city == 'New York';

Solution

  1. Step 1: Check the operator between conditions

    The question asks for AND, so the operator must be AND, not OR or comma.
  2. Step 2: Check the comparison operators

    Use single equals (=) for comparison in SQL, not double equals (==).
  3. Final Answer:

    SELECT * FROM users WHERE age > 18 AND city = 'New York'; -> Option A
  4. Quick Check:

    AND + = correct syntax [OK]
Hint: Use AND and single = for conditions in WHERE [OK]
Common Mistakes:
  • Using OR instead of AND
  • Using comma instead of AND
  • Using == instead of = for comparison
3. Given the table employees with columns name, department, and salary, what will this query return?
SELECT name FROM employees WHERE department = 'Sales' AND salary > 50000;
medium
A. Names of employees in Sales with salary over 50000
B. Names of employees in Sales or salary over 50000
C. All employees with salary over 50000
D. Syntax error due to missing OR

Solution

  1. Step 1: Analyze the WHERE clause conditions

    The query filters rows where department equals 'Sales' AND salary is greater than 50000.
  2. Step 2: Understand the AND effect

    Only employees meeting both conditions will be selected, so names returned are from Sales with salary above 50000.
  3. Final Answer:

    Names of employees in Sales with salary over 50000 -> Option A
  4. Quick Check:

    AND filters both conditions true [OK]
Hint: AND means both conditions must be true to select rows [OK]
Common Mistakes:
  • Thinking OR is used instead of AND
  • Assuming it returns all employees with salary > 50000
  • Believing syntax error occurs without OR
4. Identify the error in this SQL query:
SELECT * FROM products WHERE price > 100 AND category 'Electronics';
medium
A. AND should be OR
B. Missing comparison operator (=) before 'Electronics'
C. price > 100 is invalid syntax
D. Missing FROM keyword

Solution

  1. Step 1: Check the WHERE clause syntax

    The condition after AND is missing a comparison operator before 'Electronics'. It should be category = 'Electronics'.
  2. Step 2: Verify other parts

    price > 100 is correct, AND is valid, and FROM is present.
  3. Final Answer:

    Missing comparison operator (=) before 'Electronics' -> Option B
  4. Quick Check:

    Comparison operator needed before value [OK]
Hint: Each condition needs a comparison operator like = [OK]
Common Mistakes:
  • Omitting = in conditions
  • Replacing AND with OR incorrectly
  • Ignoring syntax errors in WHERE clause
5. You have a table orders with columns order_id, customer_id, status, and total. Write a query to find all orders with status 'shipped' AND total greater than 100, but exclude orders where customer_id is NULL. Which query is correct?
hard
A. SELECT * FROM orders WHERE status = 'shipped' AND total > 100 AND customer_id != NULL;
B. SELECT * FROM orders WHERE status = 'shipped' OR total > 100 AND customer_id IS NOT NULL;
C. SELECT * FROM orders WHERE status = 'shipped' AND total > 100 OR customer_id IS NOT NULL;
D. SELECT * FROM orders WHERE status = 'shipped' AND total > 100 AND customer_id IS NOT NULL;

Solution

  1. Step 1: Combine conditions with AND

    We want orders where status is 'shipped' AND total is greater than 100 AND customer_id is not NULL.
  2. Step 2: Use correct syntax for NULL check

    In SQL, to check for NULL, use IS NOT NULL, not != NULL.
  3. Final Answer:

    SELECT * FROM orders WHERE status = 'shipped' AND total > 100 AND customer_id IS NOT NULL; -> Option D
  4. Quick Check:

    Use AND and IS NOT NULL for correct filtering [OK]
Hint: Use IS NOT NULL to exclude NULLs with AND [OK]
Common Mistakes:
  • Using OR instead of AND
  • Using != NULL instead of IS NOT NULL
  • Mixing AND and OR without parentheses
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard