Bird
Raised Fist0
SQLquery~5 mins

CASE in WHERE clause in SQL - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does the CASE statement do inside a WHERE clause?
It allows you to apply conditional logic to decide which rows to include based on different conditions.
Click to reveal answer
beginner
How do you write a simple CASE expression inside a WHERE clause?
Use WHERE CASE WHEN condition THEN value ELSE other_value END = something to filter rows based on conditions.
Click to reveal answer
intermediate
Can CASE in WHERE clause return different columns or just values?
CASE returns values, not columns. It helps decide which value to compare in the WHERE filter.
Click to reveal answer
intermediate
Why use CASE in WHERE instead of multiple OR conditions?
CASE can make complex conditions clearer and easier to manage by grouping logic in one expression.
Click to reveal answer
beginner
Example: How to filter rows where status is 'active' if type is 1, else 'pending'?
Use WHERE (CASE WHEN type = 1 THEN status ELSE 'pending' END) = 'active' to apply this logic.
Click to reveal answer
What does the CASE statement inside a WHERE clause return?
AA value to compare
BA column name
CA table
DA SQL command
Which keyword is used to start a CASE expression?
AWHEN
BELSE
CTHEN
DCASE
Can you use ELSE in a CASE inside WHERE clause?
ANo, ELSE is not allowed
BYes, to provide a default value
COnly if there is one WHEN
DOnly in SELECT, not WHERE
Which is a valid use of CASE in WHERE clause?
AWHERE CASE WHEN age > 18 THEN 'adult' ELSE 'minor' END = 'adult'
BWHERE CASE age > 18 THEN 'adult' ELSE 'minor' END
CWHERE CASE age > 18 'adult' ELSE 'minor' END
DWHERE CASE age > 18 THEN 'adult' ELSE 'minor'
Why might you use CASE in a WHERE clause?
ATo join tables
BTo create new tables
CTo apply different filters based on conditions
DTo sort results
Explain how CASE can be used inside a WHERE clause to filter data conditionally.
Think about how CASE returns a value that the WHERE clause compares.
You got /5 concepts.
    Write a simple example of a SQL query using CASE in the WHERE clause to filter rows based on different conditions.
    Try filtering rows where a column value changes the filter condition.
    You got /5 concepts.

      Practice

      (1/5)
      1. What does using CASE in a WHERE clause allow you to do in SQL?
      easy
      A. Sort the results in multiple ways
      B. Create new columns in the result set
      C. Apply different filter conditions based on row values
      D. Join tables conditionally

      Solution

      1. Step 1: Understand the role of CASE in WHERE

        The CASE expression in WHERE lets you choose which condition to apply depending on data values in each row.
      2. Step 2: Compare with other options

        Creating new columns is done with SELECT, sorting with ORDER BY, and joining with JOIN, not CASE in WHERE.
      3. Final Answer:

        Apply different filter conditions based on row values -> Option C
      4. Quick Check:

        CASE in WHERE = conditional filtering [OK]
      Hint: CASE in WHERE picks filters by row values [OK]
      Common Mistakes:
      • Thinking CASE creates new columns
      • Confusing CASE with ORDER BY
      • Assuming CASE controls JOIN logic
      2. Which of the following is the correct syntax to use CASE inside a WHERE clause?
      easy
      A. WHERE CASE age WHEN > 18 THEN 'adult' ELSE 'minor' END = 'adult'
      B. WHERE CASE WHEN age > 18 THEN 'adult' ELSE 'minor' END = 'adult'
      C. WHERE CASE WHEN age > 18 THEN adult ELSE minor END
      D. WHERE CASE age > 18 THEN 'adult' ELSE 'minor' END = 'adult'

      Solution

      1. Step 1: Review correct CASE syntax

        The correct CASE syntax uses WHEN condition THEN result ELSE result END. WHERE CASE WHEN age > 18 THEN 'adult' ELSE 'minor' END = 'adult' follows this exactly.
      2. Step 2: Identify syntax errors in other options

        Options B, C, and D misuse CASE syntax by missing WHEN or ELSE keywords or incorrect placement.
      3. Final Answer:

        WHERE CASE WHEN age > 18 THEN 'adult' ELSE 'minor' END = 'adult' -> Option B
      4. Quick Check:

        CASE WHEN ... THEN ... ELSE ... END [OK]
      Hint: CASE needs WHEN and THEN keywords in WHERE [OK]
      Common Mistakes:
      • Omitting WHEN keyword
      • Using CASE without END
      • Placing conditions incorrectly
      3. Given the table Employees with column salary, what rows will this query return?
      SELECT * FROM Employees WHERE CASE WHEN salary >= 50000 THEN 1 ELSE 0 END = 1;
      medium
      A. Rows where salary is less than 50000
      B. Rows where salary is exactly 50000
      C. All rows regardless of salary
      D. Rows where salary is 50000 or more

      Solution

      1. Step 1: Understand the CASE condition

        The CASE returns 1 if salary is 50000 or more, else 0.
      2. Step 2: Apply the WHERE filter

        The WHERE clause keeps rows where CASE result equals 1, so salary must be at least 50000.
      3. Final Answer:

        Rows where salary is 50000 or more -> Option D
      4. Quick Check:

        salary >= 50000 = filtered rows [OK]
      Hint: CASE returns 1 for salary ≥ 50000, filter keeps those rows [OK]
      Common Mistakes:
      • Thinking it returns rows below 50000
      • Confusing equality with greater than
      • Ignoring ELSE result
      4. Identify the error in this query using CASE in WHERE clause:
      SELECT * FROM Orders WHERE CASE order_status WHEN 'shipped' THEN TRUE ELSE FALSE;
      medium
      A. Missing END keyword for CASE expression
      B. Incorrect use of TRUE/FALSE in CASE
      C. CASE cannot be used in WHERE clause
      D. Missing THEN keyword in CASE

      Solution

      1. Step 1: Check CASE syntax completeness

        The CASE expression must end with END keyword, which is missing here.
      2. Step 2: Verify other parts

        TRUE/FALSE usage is valid, CASE can be used in WHERE, and THEN keyword is present.
      3. Final Answer:

        Missing END keyword for CASE expression -> Option A
      4. Quick Check:

        CASE ... END required [OK]
      Hint: Always close CASE with END in WHERE [OK]
      Common Mistakes:
      • Forgetting END keyword
      • Thinking CASE can't be in WHERE
      • Misplacing THEN keyword
      5. You want to filter Products so that if category is 'Electronics', only products with stock > 0 are shown; otherwise, show products with price < 100. Which WHERE clause using CASE is correct?
      hard
      A. WHERE CASE WHEN category = 'Electronics' THEN stock > 0 ELSE price < 100 END = TRUE
      B. WHERE CASE category WHEN 'Electronics' THEN stock > 0 ELSE price < 100 = TRUE
      C. WHERE CASE WHEN category = 'Electronics' THEN stock > 0 ELSE price < 100
      D. WHERE CASE category WHEN 'Electronics' THEN stock > 0 ELSE price < 100

      Solution

      1. Step 1: Understand CASE returns boolean condition

        The CASE must return TRUE or FALSE to filter rows properly.
      2. Step 2: Check syntax and comparison

        WHERE CASE WHEN category = 'Electronics' THEN stock > 0 ELSE price < 100 END = TRUE correctly uses WHEN condition THEN boolean expression ELSE boolean expression END = TRUE to filter rows.
      3. Step 3: Identify why others are wrong

        Options A, B, and D miss the END keyword for the CASE expression, causing syntax errors.
      4. Final Answer:

        WHERE CASE WHEN category = 'Electronics' THEN stock > 0 ELSE price < 100 END = TRUE -> Option A
      5. Quick Check:

        CASE returns boolean, compare with TRUE in WHERE [OK]
      Hint: Compare CASE result to TRUE in WHERE for boolean filters [OK]
      Common Mistakes:
      • Missing END keyword
      • Using CASE with simple WHEN without condition
      • Returning non-boolean values in CASE
      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