Bird
Raised Fist0
MySQLquery~20 mins

IFNULL and COALESCE in MySQL - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
IFNULL and COALESCE Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ query_result
intermediate
2:00remaining
Output of IFNULL with NULL value
Consider a table employees with a column bonus that can be NULL. What is the output of this query?
SELECT IFNULL(bonus, 100) AS bonus_amount FROM employees WHERE id = 1;
Assuming bonus is NULL for id = 1.
MySQL
SELECT IFNULL(bonus, 100) AS bonus_amount FROM employees WHERE id = 1;
A100
B0
CNULL
DError
Attempts:
2 left
💡 Hint
IFNULL returns the first argument if it is not NULL, otherwise the second.
❓ query_result
intermediate
2:00remaining
Output of COALESCE with multiple NULLs
Given a table orders with columns discount1, discount2, and discount3, all possibly NULL. What is the output of this query?
SELECT COALESCE(discount1, discount2, discount3, 0) AS discount FROM orders WHERE order_id = 5;
Assuming discount1 and discount2 are NULL, and discount3 is 15.
MySQL
SELECT COALESCE(discount1, discount2, discount3, 0) AS discount FROM orders WHERE order_id = 5;
ANULL
B15
C0
DError
Attempts:
2 left
💡 Hint
COALESCE returns the first non-NULL value from its arguments.
📝 Syntax
advanced
2:00remaining
Identify the syntax error in COALESCE usage
Which option contains a syntax error when using COALESCE in MySQL?
ASELECT COALESCE();
BSELECT COALESCE(NULL, NULL, 0);
CSELECT COALESCE(NULL, 5, 10);
DSELECT COALESCE('a', 'b');
Attempts:
2 left
💡 Hint
COALESCE requires at least one argument.
❓ query_result
advanced
2:00remaining
Difference between IFNULL and COALESCE output
Given the query:
SELECT IFNULL(NULL, 0) AS val1, COALESCE(NULL, 0) AS val2;

What is the output?
MySQL
SELECT IFNULL(NULL, 0) AS val1, COALESCE(NULL, 0) AS val2;
Aval1 = NULL, val2 = 0
Bval1 = NULL, val2 = NULL
Cval1 = 0, val2 = NULL
Dval1 = 0, val2 = 0
Attempts:
2 left
💡 Hint
Both IFNULL and COALESCE return the first non-NULL argument.
🧠 Conceptual
expert
2:00remaining
Behavior of COALESCE with subqueries returning NULL
Consider this query:
SELECT COALESCE((SELECT NULL), (SELECT NULL), 42) AS result;

What is the value of result?
MySQL
SELECT COALESCE((SELECT NULL), (SELECT NULL), 42) AS result;
AError due to subqueries
BNULL
C42
DEmpty result set
Attempts:
2 left
💡 Hint
COALESCE returns the first non-NULL value among its arguments, including subquery results.

Practice

(1/5)
1. What does the IFNULL(expr1, expr2) function do in MySQL?
easy
A. Checks if expr1 equals expr2 and returns TRUE or FALSE.
B. Returns expr2 if expr1 is NULL, otherwise returns expr1.
C. Returns the first non-NULL value from a list of expressions.
D. Returns NULL if expr1 is NULL, otherwise returns expr2.

Solution

  1. Step 1: Understand IFNULL function behavior

    IFNULL takes two expressions and checks if the first is NULL.
  2. Step 2: Determine return value based on NULL check

    If the first expression is NULL, it returns the second; otherwise, it returns the first.
  3. Final Answer:

    Returns expr2 if expr1 is NULL, otherwise returns expr1. -> Option B
  4. Quick Check:

    IFNULL(expr1, expr2) = expr2 if expr1 is NULL [OK]
Hint: IFNULL replaces NULL with one default value quickly [OK]
Common Mistakes:
  • Confusing IFNULL with COALESCE
  • Thinking IFNULL returns NULL always
  • Mixing order of arguments
2. Which of the following is the correct syntax to use COALESCE in MySQL?
easy
A. COALESCE(expr1, expr2, ..., exprN)
B. COALESCE(expr1; expr2; ...; exprN)
C. COALESCE[expr1, expr2, ..., exprN]
D. COALESCE{expr1, expr2, ..., exprN}

Solution

  1. Step 1: Recall COALESCE syntax

    COALESCE takes a comma-separated list of expressions inside parentheses.
  2. Step 2: Identify correct punctuation

    Only COALESCE(expr1, expr2, ..., exprN) uses commas and parentheses correctly.
  3. Final Answer:

    COALESCE(expr1, expr2, ..., exprN) -> Option A
  4. Quick Check:

    COALESCE uses commas and parentheses [OK]
Hint: Use commas inside parentheses for COALESCE [OK]
Common Mistakes:
  • Using semicolons instead of commas
  • Using brackets or braces instead of parentheses
  • Missing parentheses
3. Given the table users with columns id, nickname, and fullname, what will this query return?
SELECT id, COALESCE(nickname, fullname, 'Guest') AS display_name FROM users;

Assuming a row has nickname = NULL and fullname = 'Alice'.
medium
A. 'Alice'
B. 'Guest'
C. NULL
D. Empty string

Solution

  1. Step 1: Understand COALESCE behavior with given values

    COALESCE returns the first non-NULL value from the list: nickname, fullname, 'Guest'.
  2. Step 2: Apply values to COALESCE

    Since nickname is NULL, it checks fullname which is 'Alice', so it returns 'Alice'.
  3. Final Answer:

    'Alice' -> Option A
  4. Quick Check:

    COALESCE(NULL, 'Alice', 'Guest') = 'Alice' [OK]
Hint: COALESCE picks first non-NULL value from left to right [OK]
Common Mistakes:
  • Assuming COALESCE returns NULL if first is NULL
  • Confusing COALESCE with IFNULL
  • Thinking it returns default always
4. Identify the error in this query:
SELECT IFNULL(name, 'Unknown' 'N/A') FROM employees;
medium
A. No error, query is correct
B. IFNULL cannot take string literals
C. Incorrect function name, should be COALESCE
D. Missing comma between 'Unknown' and 'N/A'

Solution

  1. Step 1: Check IFNULL syntax

    IFNULL takes exactly two arguments separated by a comma.
  2. Step 2: Identify argument separation error

    The query has two string literals without a comma between them, causing syntax error.
  3. Final Answer:

    Missing comma between 'Unknown' and 'N/A' -> Option D
  4. Quick Check:

    Arguments must be comma-separated [OK]
Hint: Separate arguments with commas in functions [OK]
Common Mistakes:
  • Forgetting commas between arguments
  • Using IFNULL with more than two arguments
  • Confusing IFNULL and COALESCE syntax
5. You want to display a user's contact info by checking email, then phone, and if both are NULL, show 'No contact'. Which query correctly uses COALESCE for this?
hard
A. SELECT COALESCE(email, 'No contact', phone) AS contact_info FROM users;
B. SELECT IFNULL(email, IFNULL(phone, 'No contact')) AS contact_info FROM users;
C. SELECT COALESCE(email, phone, 'No contact') AS contact_info FROM users;
D. SELECT IFNULL(email, phone, 'No contact') AS contact_info FROM users;

Solution

  1. Step 1: Understand COALESCE usage for multiple values

    COALESCE returns the first non-NULL value from all arguments in order.
  2. Step 2: Check argument order for contact info

    We want email first, then phone, then 'No contact' if both NULL.
  3. Step 3: Validate each option

    SELECT COALESCE(email, phone, 'No contact') AS contact_info FROM users; correctly orders arguments. SELECT IFNULL(email, IFNULL(phone, 'No contact')) AS contact_info FROM users; uses nested IFNULL which works but is more complex. SELECT COALESCE(email, 'No contact', phone) AS contact_info FROM users; puts 'No contact' before phone, which is wrong. SELECT IFNULL(email, phone, 'No contact') AS contact_info FROM users; has wrong IFNULL syntax with three arguments.
  4. Final Answer:

    SELECT COALESCE(email, phone, 'No contact') AS contact_info FROM users; -> Option C
  5. Quick Check:

    COALESCE picks first non-NULL in order [OK]
Hint: List values in COALESCE from most to least preferred [OK]
Common Mistakes:
  • Putting default value before other columns
  • Using IFNULL with more than two arguments
  • Confusing argument order
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