Here is MySQL CASE Statement Tutorial

The CASE statement in MySQL allows you to perform conditional logic inside SQL queries — like an IF-ELSE or SWITCH statement in programming languages.


✅ Syntax

✅ Simple CASE

CASE expression
    WHEN value1 THEN result1
    WHEN value2 THEN result2
    ...
    ELSE default_result
END

✅ Searched CASE

CASE
    WHEN condition1 THEN result1
    WHEN condition2 THEN result2
    ...
    ELSE default_result
END

You can use CASE in SELECT, ORDER BY, WHERE, GROUP BY, and even in UPDATE statements.


🎓 Example Table: students

idnamemarks
1Alice85
2Bob60
3Carol40
4David72
5Emma30

🔍 Example 1: Assign Grades Using CASE

SELECT name, marks,
  CASE
    WHEN marks >= 80 THEN 'A'
    WHEN marks >= 60 THEN 'B'
    WHEN marks >= 40 THEN 'C'
    ELSE 'F'
  END AS grade
FROM students;

Result:

namemarksgrade
Alice85A
Bob60B
Carol40C
David72B
Emma30F

🔍 Example 2: Use CASE in ORDER BY

SELECT name, marks
FROM students
ORDER BY
  CASE
    WHEN marks >= 40 THEN 1
    ELSE 2
  END,
  marks DESC;

Explanation:

  • Pass students (marks ≥ 40) appear first
  • Then fail students (marks < 40)

🔄 Example 3: Use CASE in UPDATE

UPDATE students
SET marks = 
  CASE
    WHEN marks < 35 THEN 35
    ELSE marks
  END;

This will boost all failing students to at least 35 marks.


⚖️ CASE vs IF

FeatureCASEIF
PortabilityMore standard SQLMySQL-specific
Multiple conditions❌ (only 2 branches)
Use in SELECT, ORDER BY
ReadabilityBetter for many conditionsShort & simple for binary

📝 Best Practices

  • Use CASE for clean, readable logic in SELECT, ORDER BY, etc.
  • Prefer searched CASE for complex logical expressions
  • Always include an ELSE for safety (optional but recommended)

🎯 Summary

Use CaseExample
Add a derived columnSELECT ..., CASE WHEN ... THEN ... END AS ...
Filter/order rows conditionallyORDER BY CASE ...
Update with logicUPDATE ... SET col = CASE ...

Here is MySQL CASE Statement Tutorial

The CASE statement in MySQL allows you to perform conditional logic inside SQL queries — like an IF-ELSE or SWITCH statement in programming languages.


✅ Syntax

✅ Simple CASE

CASE expression
    WHEN value1 THEN result1
    WHEN value2 THEN result2
    ...
    ELSE default_result
END

✅ Searched CASE

CASE
    WHEN condition1 THEN result1
    WHEN condition2 THEN result2
    ...
    ELSE default_result
END

You can use CASE in SELECT, ORDER BY, WHERE, GROUP BY, and even in UPDATE statements.


🎓 Example Table: students

idnamemarks
1Alice85
2Bob60
3Carol40
4David72
5Emma30

🔍 Example 1: Assign Grades Using CASE

SELECT name, marks,
  CASE
    WHEN marks >= 80 THEN 'A'
    WHEN marks >= 60 THEN 'B'
    WHEN marks >= 40 THEN 'C'
    ELSE 'F'
  END AS grade
FROM students;

Result:

namemarksgrade
Alice85A
Bob60B
Carol40C
David72B
Emma30F

🔍 Example 2: Use CASE in ORDER BY

SELECT name, marks
FROM students
ORDER BY
  CASE
    WHEN marks >= 40 THEN 1
    ELSE 2
  END,
  marks DESC;

Explanation:

  • Pass students (marks ≥ 40) appear first
  • Then fail students (marks < 40)

🔄 Example 3: Use CASE in UPDATE

UPDATE students
SET marks = 
  CASE
    WHEN marks < 35 THEN 35
    ELSE marks
  END;

This will boost all failing students to at least 35 marks.


⚖️ CASE vs IF

FeatureCASEIF
PortabilityMore standard SQLMySQL-specific
Multiple conditions❌ (only 2 branches)
Use in SELECT, ORDER BY
ReadabilityBetter for many conditionsShort & simple for binary

📝 Best Practices

  • Use CASE for clean, readable logic in SELECT, ORDER BY, etc.
  • Prefer searched CASE for complex logical expressions
  • Always include an ELSE for safety (optional but recommended)

🎯 Summary

Use CaseExample
Add a derived columnSELECT ..., CASE WHEN ... THEN ... END AS ...
Filter/order rows conditionallyORDER BY CASE ...
Update with logicUPDATE ... SET col = CASE ...