Bird
0
0

You want to filter rows from Employees where if department is 'HR', salary must be above 60000, else age must be below 30. Which query correctly uses CASE in the WHERE clause?

hard📝 Application Q8 of 15
SQL - CASE Expressions
You want to filter rows from Employees where if department is 'HR', salary must be above 60000, else age must be below 30. Which query correctly uses CASE in the WHERE clause?
ASELECT * FROM Employees WHERE CASE WHEN department = 'HR' THEN salary > 60000 ELSE age < 30 END;
BSELECT * FROM Employees WHERE CASE WHEN department = 'HR' THEN salary > 60000 ELSE age < 30 END = TRUE;
CSELECT * FROM Employees WHERE CASE department = 'HR' THEN salary > 60000 ELSE age < 30 END;
DSELECT * FROM Employees WHERE CASE WHEN department = 'HR' THEN salary > 60000 ELSE age < 30;
Step-by-Step Solution
Solution:
  1. Step 1: Check CASE syntax

    SELECT * FROM Employees WHERE CASE WHEN department = 'HR' THEN salary > 60000 ELSE age < 30 END; uses correct WHEN, THEN, ELSE, END syntax.
  2. Step 2: Check WHERE usage

    SELECT * FROM Employees WHERE CASE WHEN department = 'HR' THEN salary > 60000 ELSE age < 30 END; uses CASE directly as condition without '= TRUE', which is valid.
  3. Step 3: Identify errors in other options

    A adds unnecessary '= TRUE'; C misses WHEN keyword; D misses END keyword.
  4. Final Answer:

    SELECT * FROM Employees WHERE CASE WHEN department = 'HR' THEN salary > 60000 ELSE age < 30 END; -> Option A
  5. Quick Check:

    Correct CASE syntax and usage in WHERE = SELECT * FROM Employees WHERE CASE WHEN department = 'HR' THEN salary > 60000 ELSE age < 30 END; [OK]
Quick Trick: Use full CASE syntax and no '= TRUE' in WHERE [OK]
Common Mistakes:
  • Adding '= TRUE' after CASE
  • Omitting WHEN or END keywords
  • Incorrect CASE syntax

Want More Practice?

15+ quiz questions · All difficulty levels · Free

Free Signup - Practice All Questions
More SQL Quizzes