
When working with databases, handling missing or undefined values is crucial. In SQL, NULL
represents an unknown or missing value, and checking for its presence (or absence) is often necessary in queries. This is where IS NOT NULL
comes into play.
Understanding NULL in SQL
Before diving into IS NOT NULL
, it’s essential to understand what NULL
represents. Unlike an empty string (''
) or zero (0
), NULL
signifies that a value is unknown or missing. In SQL, any operation involving NULL
usually results in NULL
.
Using IS NOT NULL in SQL
The IS NOT NULL
condition filters out NULL
values from query results. If a column contains NULL
values and you only want rows where the column has actual data, IS NOT NULL
is the way to go.
The basic syntax of IS NOT NULL
is:
SELECT column_name
FROM table_name
WHERE column_name IS NOT NULL;
Practical Examples of IS NOT NULL
1. Filtering Out NULL Values
Imagine you have a table employees
with the following data:
id | name | |
---|---|---|
1 | John Doe | john.doe@example.com |
2 | Jane Smith | NULL |
3 | Mike Johnson | mike.johnson@example.com |
To retrieve only employees who have an email address:
SELECT name, email
FROM employees
WHERE email IS NOT NULL;
This will return:
name | |
---|---|
John Doe | john.doe@example.com |
Mike Johnson | mike.johnson@example.com |
2. Using IS NOT NULL with Multiple Conditions
You can combine IS NOT NULL
with other conditions using AND
or OR
.
SELECT id, name
FROM employees
WHERE email IS NOT NULL AND name LIKE 'J%';
This query fetches employees whose name starts with “J” and have a non-null email.
Common Mistakes When Using IS NOT NULL
1. Using = NULL Instead of IS NULL
One of the biggest mistakes is trying to compare NULL
using = NULL
. This doesn’t work because NULL
isn’t a specific value but a placeholder for missing data.
Incorrect:
SELECT * FROM employees WHERE email = NULL;
Correct:
SELECT * FROM employees WHERE email IS NULL;
2. Ignoring That NULLs Can Affect Aggregations
Many aggregate functions ignore NULL
values. For example:
SELECT AVG(salary) FROM employees;
If some salary values are NULL
, they are not included in the average calculation.
When to Use IS NOT NULL
You should use IS NOT NULL
in queries when:
- You need to fetch only rows where a column has valid (non-null) values.
- You’re performing calculations that require known values.
- You’re filtering data to ensure complete records are used.
Conclusion
Understanding how IS NOT NULL
works in SQL is essential for accurate data retrieval. Since NULL
represents missing or unknown data, using IS NOT NULL
helps ensure that queries return only meaningful values. Keep in mind that NULL
handling affects everything from filtering to aggregate functions, so using IS NOT NULL
correctly is key to writing effective SQL queries.
Other interesting article:
How IS NULL works in SQL? Best IS NULL examples