Bird
Raised Fist0
SQLquery~10 mins

Simple CASE syntax in SQL - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - Simple CASE syntax
Start CASE expression
↓
Evaluate expression value
↓
Compare with WHEN values
↓
Match found?
No→Check next WHEN
↓
Return THEN result
↓
No matches
Yes→Return ELSE result or NULL
↓
End CASE expression
The CASE expression evaluates a value, compares it to WHEN values, returns the matching THEN result, or ELSE if no match.
Execution Sample
SQL
SELECT
  CASE grade
    WHEN 'A' THEN 'Excellent'
    WHEN 'B' THEN 'Good'
    ELSE 'Needs Improvement'
  END AS performance
FROM students;
This query assigns a performance label based on the grade value for each student.
Execution Table
Stepgrade valueCompare with WHENMatch?Result returned
1'A''A'Yes'Excellent'
2'B''A'NoCheck next WHEN
2'B''B'Yes'Good'
3'C''A'NoCheck next WHEN
3'C''B'NoCheck next WHEN
3'C'ELSEN/A'Needs Improvement'
💡 All rows processed; CASE returns matching THEN or ELSE if no match.
Variable Tracker
VariableStartAfter 1After 2After 3Final
gradeN/A'A''B''C'N/A
ResultN/A'Excellent''Good''Needs Improvement'N/A
Key Moments - 2 Insights
Why does the CASE stop checking WHEN conditions after a match?
Because once a WHEN condition matches the expression value, CASE returns the THEN result immediately, as shown in execution_table rows 1 and 3.
What happens if none of the WHEN values match the expression?
CASE returns the ELSE result if provided, or NULL if ELSE is missing, as shown in execution_table row 6 for grade 'C'.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table, what result is returned when grade is 'B'?
A'Excellent'
B'Good'
C'Needs Improvement'
DNULL
💡 Hint
Check execution_table row 3 where grade 'B' matches WHEN 'B'.
At which step does the CASE expression return the ELSE result?
AStep 3
BStep 1
CStep 2
DNo ELSE result returned
💡 Hint
See execution_table rows 5 and 6 for grade 'C' with no WHEN match.
If the ELSE clause was removed, what would be the result for grade 'C'?
A'Good'
B'Needs Improvement'
CNULL
DError
💡 Hint
Without ELSE, CASE returns NULL when no WHEN matches, as explained in key_moments.
Concept Snapshot
Simple CASE syntax:
CASE expression
  WHEN value1 THEN result1
  WHEN value2 THEN result2
  ELSE default_result
END
- Evaluates expression once
- Compares to WHEN values
- Returns matching THEN result or ELSE
- ELSE is optional; returns NULL if missing
Full Transcript
The Simple CASE syntax in SQL evaluates an expression and compares it to multiple WHEN values. If a match is found, it returns the corresponding THEN result immediately. If no match is found, it returns the ELSE result if provided, or NULL otherwise. This process stops as soon as a match is found. For example, if the grade is 'A', the CASE returns 'Excellent'. If the grade is 'C' and no WHEN matches, it returns 'Needs Improvement' from ELSE. This helps assign labels or categories based on a single value efficiently.

Practice

(1/5)
1. What does the Simple CASE expression do in SQL?
easy
A. It loops through rows and updates values conditionally.
B. It compares one expression to multiple values and returns a result for the first match.
C. It creates a new table based on conditions.
D. It deletes rows that match a condition.

Solution

  1. Step 1: Understand the purpose of Simple CASE

    Simple CASE compares one expression against multiple possible values.
  2. Step 2: Identify the result behavior

    It returns the result for the first matching value it finds.
  3. Final Answer:

    It compares one expression to multiple values and returns a result for the first match. -> Option B
  4. Quick Check:

    Simple CASE = compare expression to values [OK]
Hint: Simple CASE matches one value to many options [OK]
Common Mistakes:
  • Thinking it loops through rows
  • Confusing with IF statements
  • Assuming it creates or deletes tables
2. Which of the following is the correct syntax for a Simple CASE expression in SQL?
easy
A. CASE expression WHEN value THEN result ELSE default END
B. IF expression THEN result ELSE default END
C. CASE WHEN expression THEN result END
D. SWITCH expression WHEN value THEN result END

Solution

  1. Step 1: Recall Simple CASE syntax structure

    The correct syntax is: CASE expression WHEN value THEN result ELSE default END.
  2. Step 2: Compare options

    CASE expression WHEN value THEN result ELSE default END matches this syntax exactly, others use incorrect keywords or structure.
  3. Final Answer:

    CASE expression WHEN value THEN result ELSE default END -> Option A
  4. Quick Check:

    Simple CASE syntax = CASE expr WHEN val THEN res ELSE def END [OK]
Hint: Simple CASE uses 'CASE expr WHEN val THEN res' format [OK]
Common Mistakes:
  • Using WHEN without expression after CASE
  • Confusing with IF or SWITCH syntax
  • Omitting END keyword
3. Given the table Employees with column DepartmentID, what will this query return?
SELECT EmployeeName,
CASE DepartmentID
WHEN 1 THEN 'HR'
WHEN 2 THEN 'Sales'
ELSE 'Other'
END AS DeptName
FROM Employees;
medium
A. Employee names with department names 'HR', 'Sales', or 'Other' based on DepartmentID.
B. Only employees from HR and Sales departments.
C. An error because ELSE is missing.
D. Employee names with numeric DepartmentID values.

Solution

  1. Step 1: Understand the CASE expression in the query

    The CASE checks DepartmentID: 1 returns 'HR', 2 returns 'Sales', others return 'Other'.
  2. Step 2: Analyze the SELECT output

    The query returns EmployeeName and DeptName with the mapped department names or 'Other'.
  3. Final Answer:

    Employee names with department names 'HR', 'Sales', or 'Other' based on DepartmentID. -> Option A
  4. Quick Check:

    CASE maps DepartmentID to names [OK]
Hint: CASE returns first matching value or ELSE default [OK]
Common Mistakes:
  • Thinking ELSE is required (it's optional)
  • Assuming only HR and Sales appear
  • Expecting numeric DepartmentID instead of names
4. Identify the error in this Simple CASE query:
SELECT ProductName,
CASE ProductCategory
WHEN 'A' THEN 'Category A'
WHEN 'B' 'Category B'
ELSE 'Other'
END AS CategoryName
FROM Products;
medium
A. CASE expression should be inside parentheses.
B. Missing END keyword at the end.
C. Incorrect use of ELSE keyword.
D. Missing THEN keyword after WHEN 'B'.

Solution

  1. Step 1: Review each WHEN clause syntax

    WHEN clauses must have THEN keyword before the result. The second WHEN is missing THEN.
  2. Step 2: Check other parts of the query

    END keyword is present, ELSE is correctly used, parentheses are not required around CASE expression.
  3. Final Answer:

    Missing THEN keyword after WHEN 'B'. -> Option D
  4. Quick Check:

    WHEN must be followed by THEN [OK]
Hint: Each WHEN must be followed by THEN [OK]
Common Mistakes:
  • Forgetting THEN after WHEN
  • Thinking END is optional
  • Adding unnecessary parentheses
5. You want to categorize sales amounts into 'Low', 'Medium', and 'High' using Simple CASE. Which query correctly assigns:
- 'Low' for 0
- 'Medium' for 1
- 'High' for 2 or more (default)?
SELECT SaleID,
CASE SaleAmount
WHEN 0 THEN 'Low'
WHEN 1 THEN 'Medium'
ELSE 'High'
END AS SaleCategory
FROM Sales;
hard
A. Fails because ELSE cannot be used for multiple values.
B. Incorrect because Simple CASE cannot handle ranges like 2 or more.
C. Correctly categorizes sales as described.
D. Syntax error due to missing WHEN for 2.

Solution

  1. Step 1: Understand Simple CASE limitations

    Simple CASE matches exact values; ELSE handles all other cases.
  2. Step 2: Analyze the query logic

    WHEN 0 returns 'Low', WHEN 1 returns 'Medium', ELSE covers 2 or more as 'High'.
  3. Final Answer:

    Correctly categorizes sales as described. -> Option C
  4. Quick Check:

    ELSE covers all unmatched values [OK]
Hint: Use ELSE for all other values in Simple CASE [OK]
Common Mistakes:
  • Thinking ELSE can't cover multiple values
  • Trying to use ranges in Simple CASE
  • Expecting WHEN for every possible value
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