Bird
Raised Fist0
SQLquery~5 mins

Why equals NULL fails in SQL

Choose your learning style10 modes available
Introduction

In SQL, comparing a value to NULL using equals (=) does not work because NULL means unknown or missing data. SQL treats NULL differently from normal values.

When you want to check if a database field has no value (is empty or missing).
When filtering records where a column might not have any data.
When you want to avoid wrong results by using proper NULL checks.
When writing queries that handle optional or incomplete information.
Syntax
SQL
SELECT * FROM table WHERE column IS NULL;
SELECT * FROM table WHERE column IS NOT NULL;

Use IS NULL to check if a value is NULL.

Using = NULL will never return true because NULL is not a value but a marker for missing data.

Examples
This finds employees who do not have a manager assigned.
SQL
SELECT * FROM employees WHERE manager_id IS NULL;
This finds orders that have been shipped (shipped_date has a value).
SQL
SELECT * FROM orders WHERE shipped_date IS NOT NULL;
This query will return no rows because = NULL does not work.
SQL
SELECT * FROM products WHERE price = NULL;
Sample Program

This example shows how to find rows where the 'value' column is NULL using IS NULL. The second query tries = NULL and returns nothing.

SQL
CREATE TABLE test_null (
  id INT,
  value VARCHAR(10)
);

INSERT INTO test_null VALUES (1, 'apple');
INSERT INTO test_null VALUES (2, NULL);
INSERT INTO test_null VALUES (3, 'banana');

-- Correct way to find NULL values
SELECT id FROM test_null WHERE value IS NULL;

-- Incorrect way that returns no rows
SELECT id FROM test_null WHERE value = NULL;
OutputSuccess
Important Notes

NULL means unknown or missing, not zero or empty string.

Always use IS NULL or IS NOT NULL to check for NULL values.

Summary

NULL is special and cannot be compared with = or !=.

Use IS NULL to find missing values.

Using = NULL always fails and returns no results.

Practice

(1/5)
1. Why does the SQL condition column = NULL always fail to find rows with NULL values?
easy
A. Because NULL means unknown and cannot be compared with = or != operators
B. Because NULL is treated as zero in SQL
C. Because NULL is a string and needs quotes
D. Because NULL values are automatically excluded from queries

Solution

  1. Step 1: Understand NULL meaning in SQL

    NULL represents an unknown or missing value, not a specific value.
  2. Step 2: Explain comparison behavior with NULL

    Comparing anything to NULL with = or != always returns false because NULL is unknown.
  3. Final Answer:

    Because NULL means unknown and cannot be compared with = or != operators -> Option A
  4. Quick Check:

    NULL comparison with = fails [OK]
Hint: Use IS NULL to check for NULL, not = NULL [OK]
Common Mistakes:
  • Using = NULL to find NULL values
  • Assuming NULL equals zero
  • Trying to quote NULL as a string
2. Which of the following SQL WHERE clauses correctly checks for NULL values in the age column?
easy
A. WHERE age != NULL
B. WHERE age = NULL
C. WHERE age IS NULL
D. WHERE age = 'NULL'

Solution

  1. Step 1: Review correct syntax to check NULL

    SQL uses IS NULL to test if a column has NULL values.
  2. Step 2: Analyze each option

    WHERE age = NULL and C use = or != with NULL which always fail; WHERE age = 'NULL' treats NULL as a string which is incorrect.
  3. Final Answer:

    WHERE age IS NULL -> Option C
  4. Quick Check:

    Use IS NULL for NULL checks [OK]
Hint: Always use IS NULL or IS NOT NULL for NULL checks [OK]
Common Mistakes:
  • Using = NULL or != NULL in WHERE clause
  • Quoting NULL as a string
  • Confusing NULL with empty string
3. Given a table users with a column email that contains some NULL values, what will this query return?
SELECT * FROM users WHERE email = NULL;
medium
A. All rows where email is NULL
B. All rows where email is not NULL
C. Syntax error
D. No rows at all

Solution

  1. Step 1: Understand the effect of = NULL in WHERE clause

    Comparing with = NULL always yields unknown (false), so no rows match.
  2. Step 2: Predict query result

    The query returns zero rows because no row satisfies email = NULL.
  3. Final Answer:

    No rows at all -> Option D
  4. Quick Check:

    email = NULL returns no rows [OK]
Hint: = NULL never matches any row, returns empty result [OK]
Common Mistakes:
  • Expecting rows with NULL to be returned
  • Thinking = NULL is valid syntax
  • Confusing NULL with empty string
4. You wrote this query to find rows with NULL in salary:
SELECT * FROM employees WHERE salary = NULL;

But it returns no rows. What is the fix?
medium
A. Use WHERE salary != NULL
B. Change to WHERE salary IS NULL
C. Add quotes: WHERE salary = 'NULL'
D. Change to WHERE salary = 0

Solution

  1. Step 1: Identify why salary = NULL fails

    Comparing with = NULL always returns false, so no rows match.
  2. Step 2: Use correct syntax to check NULL

    Use IS NULL to find rows where salary is NULL.
  3. Final Answer:

    Change to WHERE salary IS NULL -> Option B
  4. Quick Check:

    Use IS NULL, not = NULL [OK]
Hint: Replace = NULL with IS NULL to fix query [OK]
Common Mistakes:
  • Using = NULL instead of IS NULL
  • Comparing NULL to zero
  • Quoting NULL as string
5. You want to select all rows from orders where shipped_date is either NULL or equals '2024-01-01'. Which WHERE clause is correct?
hard
A. WHERE shipped_date IS NULL OR shipped_date = '2024-01-01'
B. WHERE shipped_date = NULL OR shipped_date = '2024-01-01'
C. WHERE shipped_date = 'NULL' OR shipped_date = '2024-01-01'
D. WHERE shipped_date != NULL OR shipped_date = '2024-01-01'

Solution

  1. Step 1: Understand NULL comparison rules

    Use IS NULL to check for NULL values, not = NULL or != NULL.
  2. Step 2: Analyze the WHERE clause options

    WHERE shipped_date IS NULL OR shipped_date = '2024-01-01' correctly uses IS NULL and equals comparison; others misuse NULL comparisons or treat NULL as string.
  3. Final Answer:

    WHERE shipped_date IS NULL OR shipped_date = '2024-01-01' -> Option A
  4. Quick Check:

    Combine IS NULL with = for dates [OK]
Hint: Use IS NULL for NULL, = for values in OR conditions [OK]
Common Mistakes:
  • Using = NULL or != NULL in OR conditions
  • Quoting NULL as string
  • Mixing NULL checks with wrong operators
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