Home/Blog/Web Development/How to use the COALESCE() function in SQL
Home/Blog/Web Development/How to use the COALESCE() function in SQL

How to use the COALESCE() function in SQL

8 min read
Mar 25, 2025
content
What are NULL values? And why do they matter?
Using the COALESCE() function: Syntax, compatibility, and examples
Syntax of the COALESCE() function
Supported databases and compatibility
Practical examples of COALESCE()
Example 1: Replacing NULL with a default value
Example 2: Handling NULL in data aggregation
Example 3: A series of expressions
Comparing COALESCE() with alternative approaches
The CASE expression vs. COALESCE() the function
The DEFAULT keyword vs. the COALESCE() function
The IFNULL() function vs. the COALESCE() function
Summarizing NULL-handling methods
Wrapping up and next steps
Continue learning SQL concepts

Key takeaways:

  • The COALESCE() function helps handle missing data by returning the first non-NULL value from a list of expressions.

  • By replacing NULL values with default options, COALESCE() improves query accuracy and ensures consistent results.

  • COALESCE() is supported across major SQL databases, such as PostgreSQL, MySQL, SQL Server, and Oracle, and it offers broad compatibility for handling NULL values.

  • Compared to complex CASE statements or database-specific functions like IFNULL(), the COALESCE() function provides a simpler and cleaner approach to managing NULL values.

  • Whether used for data aggregation, validation, or reporting, the COALESCE() function simplifies SQL operations by dynamically handling NULL values.

Tired of your SQL queries breaking because of unexpected NULL values? The COALESCE() function is your go-to solution for handling missing data and writing cleaner, more reliable SQL queries.

The COALESCE() function in SQL is a powerful tool that helps you handle these NULL values by returning the first non-NULL value from a list of expressions. This makes replacing NULL with a default value easier, improving your SQL code and data handling.

In this blog, we’ll start by explaining what NULL values are in SQL and the common ways to handle them. Then, we’ll dive into the importance of the COALESCE() function, its syntax, and how it simplifies managing NULL values in your queries. We’ll also cover supported databases and practical use cases such as concatenation, pivoting, and data validation, and finally, we’ll wrap up by discussing how COALESCE() can enhance your SQL queries.

Become a Database Professional with SQL

Cover
Become a Database Professional with SQL

SQL is a query language used for managing data in a relational database system. It is key to roles like data scientist, software engineer, and data engineer. This path will teach you essential SQL queries, including SELECT, WHERE, DISTINCT, GROUP BY, and ORDER BY, along with advanced concepts like joins, subqueries, and aggregate functions. By mastering these skills, you'll be prepared for the software industry with a strong foundation in SQL.

22hrs
Beginner
331 Playgrounds
195 Quizzes

What are NULL values? And why do they matter?#

In SQL, a NULL value represents the absence of a value or the unknown status of a data entry. It’s different from an empty string or zero; NULL indicates that the data is either missing, not applicable, or has not been provided.

Consider the following Employees table, which tracks employee details such as their sales revenue and country of operation. You can view the data by using the SELECT query as follows:

-- Creating Employees table
CREATE TABLE IF NOT EXISTS Employees (
emp_id SERIAL PRIMARY KEY,
emp_name TEXT,
date_of_joining DATE,
sales_revenue DECIMAL(10, 2),
country TEXT
);
-- Inserting data into the Employees table
INSERT INTO Employees (emp_name, date_of_joining, sales_revenue, country)
VALUES
('Jeff Novak', '2022-01-15', 1500.00, 'Brazil'),
('Susan John', '2021-11-10', 2200.50, 'USA'),
('Anna Rick', '2021-12-05', 1800.25, 'Pakistan'),
('Sara Broadbet', '2022-02-20', NULL, 'Australia'),
('Dana Amberson', '2022-03-15', 2500.80, 'Brazil'),
('Anna Justin', '2022-04-10', NULL, 'USA'),
('Susan Harris', '2022-01-01', 1620.00, 'Pakistan'),
('Elsie Amberson', '2021-11-30', 1850.50, 'Australia'),
('Diana Ronald', '2022-05-20', 1380.25, NULL),
('Anna Roger', '2021-12-25', 1100.75, 'USA'),
('John Jenkins', '2022-03-10', 2650.80, 'Pakistan'),
('Susan Lee', '2022-04-05', 1820.30, 'Australia');
SELECT * FROM Employees;

Properly handling NULL values in SQL is essential for accurate data management. Here’s why:

  1. Data integrity: NULL values represent missing or unknown data, like when sales information or a country is missing for an employee. Managing NULLs ensures your data reflects the real world, avoiding incorrect assumptions or incomplete reports.

  2. Query logic: SQL treats NULL values differently. For example, comparing NULL = NULL always returns false. If not managed, this can lead to incorrect query results. Proper handling ensures your queries return accurate data.

  3. Accurate calculations: NULLs can disrupt calculations. For example, NULL values are excluded from the total when using the SUM() function on the sales_revenue column. If not properly handled, your aggregation results may be incomplete or misleading.

  4. Improved query performance: Proper handling of NULL values can improve the performance of your queries. Replacing NULL values with default values allows you to make calculations and reports more consistent, leading to more reliable results.

Now that we’ve covered the importance of handling NULL values in SQL, it’s time to introduce a powerful tool for managing them: the COALESCE() function.

Using the COALESCE() function: Syntax, compatibility, and examples#

The COALESCE() function is an essential tool for handling NULL values in SQL. It simplifies query writing, ensures accurate results, and enhances performance.

Key Benefits of Using COALESCE()

Key Benefit

Description

Replace NULL with a default value

Easily substitutes missing or NULL data with a default value (e.g., 0, N/A).

Simplify queries

Reduces the need for complex CASE WHEN statements, making queries more concise.

Improve accuracy

Ensures calculations and data handling are more accurate by replacing NULLs.

Improve performance

Optimizes query performance by efficiently handling NULLs in aggregations and calculations.

Syntax of the COALESCE() function#

The syntax of the COALESCE() function is as follows:

COALESCE(expression_1, expression_2, ..., expression_n)
  • expression_1, expression_2, ..., expression_n: These are the values (such as columns, constants, or expressions) that COALESCE() evaluates. If the first value is NULL, it checks the next, and so on, until a non-NULL value is found.

  • Return value: The return type matches the type of the first non-NULL expression. If all expressions are NULL, the result is also NULL.

  • Data type: The COALESCE() function expects the arguments to be the same data type. If the arguments have different types, SQL will attempt to convert them based on data type precedence.

  • Number of arguments: You can pass two or more arguments to the COALESCE() function and can handle unlimited arguments. These can be columns, constants, or even complex expressions.

The COALESCE() function is particularly useful when evaluating multiple columns in a table. For example, if you must find the first non-NULL value across several columns for each row, COALESCE() will return the first non-NULL result from the specified columns.

Supported databases and compatibility#

COALESCE() is supported across major SQL databases, making it a versatile tool. Here’s where you can use it:

Note: While broadly supported, slight differences in NULL handling might exist between platforms.

Practical examples of COALESCE()#

The COALESCE() function is perfect for handling NULL values to ensure accurate results, as it helps manage NULL values effectively. Below are three practical examples you’ll commonly come across:

Example 1: Replacing NULL with a default value#

In real-world scenarios, you might encounter NULL values in a column and need to replace them with a default value. You’re generating a monthly sales report, but some employees have no recorded sales (NULL). Using COALESCE() ensures your report reflects these as 0, avoiding skewed or misleading totals. Here’s how COALESCE() can help:

SELECT emp_name, COALESCE(sales_revenue, 0) AS adjusted_sales
FROM Employees;

Example 2: Handling NULL in data aggregation#

When calculating averages, NULL values can affect the result and make the average incorrect. With COALESCE(), you can treat NULLs as 0 to include the records in the calculation to ensure the desired result:

SELECT AVG(COALESCE(sales_revenue, 0)) AS total_sales
FROM Employees;

Example 3: A series of expressions#

In real-world scenarios, you might deal with a series of values where some are missing (NULL). By using a series of expressions, you can ensure that the first available value is selected. Here’s how it works:

SELECT COALESCE(NULL, NULL, 10, 20) AS result;

In this case, 10 is returned because it is the first non-NULL value in the series, even though 20 is available later.

Comparing COALESCE() with alternative approaches#

This section will explore alternative approaches to handling NULL values in SQL and compare them with the COALESCE() function, highlighting their advantages depending on the specific use case.

We present the alternates of Example 1: Replacing NULL with a default value to compare how other approaches handle NULL values in contrast to the COALESCE() function.

The CASE expression vs. COALESCE() the function#

The CASE expression provides more complex conditional logic. It’s useful when you need to handle multiple conditions or customize behavior beyond simple NULL replacement, while COALESCE() is more concise and specifically designed to handle NULL values in a column.

To show a custom message when sales_revenue is NULL, you can use:

SELECT emp_name,
CASE
WHEN sales_revenue IS NULL THEN '0'
ELSE sales_revenue::TEXT
END AS sales_revenue
FROM Employees;

The DEFAULT keyword vs. the COALESCE() function#

The DEFAULT keyword can only specify a default value during data insertion. This method ensures that missing data is automatically replaced during INSERT operations. It automatically handles missing values when inserting new records into a table. While the DEFAULT keyword works during record insertion, COALESCE() can be applied to dynamically replace NULL values in existing data.

When creating the Employees table, you can set a default value for sales_revenue:

-- Creating Employees table
CREATE TABLE IF NOT EXISTS Employees (
emp_id SERIAL PRIMARY KEY,
emp_name TEXT,
date_of_joining DATE,
sales_revenue DECIMAL(10, 2) DEFAULT 0,
country TEXT
);

The IFNULL() function vs. the COALESCE() function#

The IFNULL() function in MySQL replaces NULL with a specified value. Unlike COALESCE(), which can accept multiple arguments, IFNULL() only accepts two: the value to check and the replacement for NULL. While IFNULL() works fine for simple cases, COALESCE() is more flexible because it can evaluate multiple values and return the first non-NULL one.

For example, IFNULL(sales_revenue, 0) will replace any NULL in sales_revenue with 0.

SELECT emp_name, IFNULL(sales_revenue, 0) AS sales_revenue
FROM Employees;

ISNULL() is used in SQL Server, while NVL() is specific to Oracle SQL.

Summarizing NULL-handling methods#

Method

When to Use

Key Limitation

COALESCE()

When you need to find the first non-NULL value from multiple expressions

Slightly heavier in performance for large datasets

CASE

For complex conditional logic beyond just handling NULL

More verbose than COALESCE() for simple null checks

IFNULL() / ISNULL()

For simpler null replacements in specific databases (like MySQL or SQL Server)

Limited to two arguments only

DEFAULT

When defining default values during data insertion

Only works at the time of data entry, not in queries

Wrapping up and next steps#

We began by understanding the importance of managing NULL values in SQL. Next, we learned about the COALESCE() function, its syntax, and how it can handle multiple arguments.

Then, we explored the practical uses of COALESCE() and compared COALESCE() with other methods like CASE expression, IFNULL(), and ISNULL(), noting their strengths and best-use scenarios. As you advance, understanding how it works with other SQL features like aggregation and conditional expressions will help you tackle more complex database tasks and improve the reliability of your queries.

If you want to deepen your understanding of SQL functions like COALESCE() and strengthen your overall database skills, several great courses will help you.

These courses will give you the tools to confidently work with SQL functions and handle complex database operations.

Continue learning SQL concepts#

Frequently Asked Questions

What does the COALESCE() function do in SQL?

It returns the first non-NULL value from a list of expressions.

How does COALESCE() differ from IFNULL() or ISNULL()?

What’s the difference between COALESCE() and CASE statements?

How does COALESCE() improve query performance?

What happens if all arguments in COALESCE() are NULL?

Can COALESCE() be used in all SQL databases?


Written By:
Rozina Asghar
Join 2.5 million developers at
Explore the catalog

Free Resources