COALESCE returns the first non-NULL value from a list of expressions. It helps to replace NULLs with a default value.
Click to reveal answer
beginner
How does NULLIF work in SQL?
NULLIF compares two expressions and returns NULL if they are equal; otherwise, it returns the first expression. It is useful to avoid certain values by turning them into NULL.
Click to reveal answer
intermediate
How can COALESCE be used as a shortcut for a CASE statement?
Instead of writing a CASE to check for NULL and provide a default, COALESCE can directly return the first non-NULL value, simplifying the query.
Click to reveal answer
intermediate
Give an example of NULLIF replacing a CASE statement.
Instead of CASE WHEN a = b THEN NULL ELSE a END, you can write NULLIF(a, b) which returns NULL if a equals b, else returns a.
Click to reveal answer
beginner
Why use COALESCE and NULLIF instead of CASE statements?
They make queries shorter and easier to read by handling common NULL-related logic without verbose CASE syntax.
Click to reveal answer
What will COALESCE(NULL, NULL, 'apple', 'banana') return?
A'banana'
B'apple'
CNULL
DError
✗ Incorrect
COALESCE returns the first non-NULL value, which is 'apple' here.
What does NULLIF(5, 5) return?
A5
BError
CNULL
D0
✗ Incorrect
NULLIF returns NULL if both arguments are equal.
Which SQL expression is equivalent to CASE WHEN col IS NULL THEN 'N/A' ELSE col END?
ACOALESCE(col, 'N/A')
BNULLIF(col, 'N/A')
CCOALESCE('N/A', col)
DNULLIF('N/A', col)
✗ Incorrect
COALESCE(col, 'N/A') returns col if not NULL, else 'N/A'.
What does NULLIF('test', 'test') return?
A'test'
BEmpty string
CError
DNULL
✗ Incorrect
NULLIF returns NULL when both inputs are equal.
Why might you choose COALESCE over a CASE statement?
ACOALESCE can handle multiple values more simply
BCOALESCE is slower but more readable
CCASE cannot handle NULL values
DCOALESCE always returns NULL
✗ Incorrect
COALESCE can check multiple values in order and return the first non-NULL, simplifying queries.
Explain how COALESCE can simplify handling NULL values compared to CASE statements.
Think about how you pick the first available option in a list.
You got /3 concepts.
Describe a scenario where NULLIF is useful and how it acts as a shortcut for CASE.
Consider when you want to treat a certain value as missing.
You got /3 concepts.
Practice
(1/5)
1. What does the SQL function COALESCE do?
easy
A. Returns the first non-NULL value from its arguments
B. Returns NULL if two values are equal
C. Always returns the last value in the list
D. Converts NULL values to zero
Solution
Step 1: Understand COALESCE behavior
COALESCE checks each argument in order and returns the first one that is not NULL.
Step 2: Compare with other options
NULLIF returns NULL if two values are equal, which is different. COALESCE does not convert NULL to zero automatically.
Final Answer:
Returns the first non-NULL value from its arguments -> Option A
Quick Check:
COALESCE = first non-NULL [OK]
Hint: COALESCE picks first non-NULL value in order [OK]
Common Mistakes:
Confusing COALESCE with NULLIF
Thinking COALESCE converts NULL to zero
Assuming COALESCE returns last value
2. Which of the following is the correct syntax for using NULLIF in SQL?
easy
A. NULLIF(value1, value2)
B. NULLIF(value1 = value2)
C. NULLIF(value1; value2)
D. NULLIF(value1, value2, value3)
Solution
Step 1: Recall NULLIF syntax
NULLIF takes exactly two arguments separated by a comma: NULLIF(value1, value2).
Step 2: Eliminate incorrect options
NULLIF(value1 = value2) uses an equality inside parentheses, which is invalid syntax. NULLIF(value1; value2) uses a semicolon instead of a comma. NULLIF(value1, value2, value3) has three arguments, which is not allowed.
Final Answer:
NULLIF(value1, value2) -> Option A
Quick Check:
NULLIF syntax = NULLIF(val1, val2) [OK]
Hint: NULLIF takes exactly two comma-separated values [OK]
Common Mistakes:
Using semicolon instead of comma
Passing more than two arguments
Using an expression inside NULLIF parentheses
3. Given the table Employees with columns id, bonus (nullable), what is the result of this query?
SELECT id, COALESCE(bonus, 100) AS bonus_amount FROM Employees WHERE id = 1;
Assuming the row with id=1 has bonus = NULL.
medium
A. No rows returned
B. [{"id": 1, "bonus_amount": 100}]
C. [{ "id": 1, "bonus_amount": 0 }]
D. [{ "id": 1, "bonus_amount": NULL }]
Solution
Step 1: Understand COALESCE with NULL bonus
Since bonus is NULL for id=1, COALESCE returns the second argument, 100.
Step 2: Check query output
The query selects id=1 and bonus_amount as 100, so the result is [{"id": 1, "bonus_amount": 100}].
Final Answer:
[{"id": 1, "bonus_amount": 100}] -> Option B
Quick Check:
COALESCE(NULL, 100) = 100 [OK]
Hint: COALESCE returns first non-NULL, here 100 [OK]
Common Mistakes:
Assuming NULL is returned instead of 100
Confusing COALESCE with NULLIF
Expecting zero instead of 100
4. Identify the error in this SQL snippet:
SELECT id, NULLIF(bonus) AS result FROM Employees;
medium
A. Missing WHERE clause
B. NULLIF cannot be used in SELECT clause
C. NULLIF requires two arguments, only one given
D. NULLIF returns wrong data type
Solution
Step 1: Check NULLIF function usage
NULLIF requires exactly two arguments, but only one (bonus) is provided here.
Step 2: Validate other options
NULLIF can be used in SELECT. WHERE clause is optional. NULLIF does not cause data type errors by itself.
Final Answer:
NULLIF requires two arguments, only one given -> Option C
Quick Check:
NULLIF needs two values [OK]
Hint: NULLIF always needs two arguments [OK]
Common Mistakes:
Using NULLIF with one argument
Thinking WHERE clause is mandatory
Assuming NULLIF changes data type
5. You want to replace a value with NULL if it equals zero, otherwise keep it as is. Which SQL expression using NULLIF achieves this?
hard
A. CASE WHEN value = 0 THEN value ELSE NULL END
B. COALESCE(value, 0)
C. NULLIF(0, value)
D. NULLIF(value, 0)
Solution
Step 1: Understand NULLIF behavior
NULLIF(value, 0) returns NULL if value equals 0, else returns value unchanged.
Step 2: Compare other options
COALESCE returns first non-NULL, not conditional replacement. CASE in CASE WHEN value = 0 THEN value ELSE NULL END returns value when zero, opposite of requirement. NULLIF(0, value) returns NULL if 0 equals value, which is reversed logic.
Final Answer:
NULLIF(value, 0) -> Option D
Quick Check:
NULLIF(value, 0) replaces zero with NULL [OK]
Hint: NULLIF(value, 0) returns NULL if value is zero [OK]
Common Mistakes:
Using COALESCE instead of NULLIF
Reversing argument order in NULLIF
Writing CASE with wrong THEN/ELSE logic
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.