PostgreSQL’s COALESCE is a powerful SQL function designed to handle NULL values in database queries. When applied, COALESCE evaluates a list of arguments and returns the first non-NULL value it encounters. This function is particularly useful for replacing NULL values with meaningful alternatives and reliability.

1. Introduction

SQL stands for Structured Query Language and is used to extract and organize data stored in relational databases like MySQL, PostgreSQL, Oracle, etc. A relational database consists of rows and columns that allow fetching specific information from databases that can be used later for analysis. In real-time SQL manages a large amount of data that is written and read simultaneously and any query that reaches the SQL server is processed into three parts –

  • Parsing – Process to check the SQL query syntax
  • Binding – Process to check the SQL query semantics
  • Optimization – Process to generate the SQL query execution plan

1.1 Usage of SQL

Structured Query Language (popularly known as SQL) is commonly used by data analysts and data science professionals and is helpful too –

  • Execute queries against the database
  • Retrieve data from the database
  • Insert new records into the database
  • Update existing records in the database
  • Created stored procedures, functions, and materialized views in the database
  • Create users and grant permissions
  • Set permissions on tables, stored procedures, functions, and materialized views

2. Understanding PostgreSQL COALESCE Function

PostgreSQL COALESCE function is a powerful tool used to handle NULL values in database queries. It evaluates a list of arguments and returns the first non-NULL value encountered. This function is invaluable for enhancing the readability and reliability of query results.


COALESCE(value1, value2, ...)

In the syntax above, value1, value2, and so on, represent the list of values to be evaluated. COALESCE returns the first non-NULL value from this list.

2.1 Benefits of COALESCE

  • Prevents NULL-related errors in queries.
  • Improves data presentation by replacing NULLs with meaningful values.
  • Enhances query readability and simplifies complex queries.
  • Applicable to various data types, ensuring versatility in usage.

By incorporating COALESCE into your PostgreSQL queries, you can handle NULL values effectively, leading to more robust and reliable database operations.

3. Working Example

Let us dive into some practice implementation on the postgresql database.

3.1 Pre-requirement – Postgres Setup

Usually, setting up the database is a tedious step but with Docker, it is a simple process. You can watch the video available at this link to understand the Docker installation on Windows OS. Once done open the terminal and trigger the below command to set and run postgresql.

Docker commands

-- command to run Postgres on docker –

-- remember to change the password --
docker run -d -p 5433:5432 -e POSTGRES_PASSWORD= --name postgres postgres

-- command to stop the Postgres docker container --
docker stop postgres

-- command to remove the Postgres docker container --
docker rm postgres

Remember to enter the password of your choice. If everything goes well the postgresql database server will be up and running on a port number – 5433 and you can connect with the Dbeaver GUI tool to connect to the server.

Postgresql on Docker
Fig. 1. Postgres on Docker

3.2 Example

Here’s a working example of the PostgreSQL COALESCE function.

Let’s consider a table named employees with columns id, name, and salary. Some salary values are NULL in the table. We can use COALESCE to replace NULL salary values with a default value, for instance, 0.

First, let’s create the employees table.


CREATE TABLE employees (
    name VARCHAR(255),
    salary INTEGER

INSERT INTO employees (name, salary) VALUES
('Alice', 50000),
('Bob', NULL),
('Charlie', 60000),
('David', NULL),
('Eva', 55000);

In this example, two employees (Bob and David) have NULL salary values.

Create and insert sql
Fig. 2: Output

To fetch the employees’ names and their salaries with NULL values replaced by 0, you can use the following query with COALESCE:


SELECT name, COALESCE(salary, 0) AS actual_salary FROM employees;
Fig. 3: Coalesce Output

In this result, COALESCE replaced NULL salary values with 0, providing a consistent and meaningful output.

4. Conclusion

In the realm of database management, dealing with NULL values can be a challenging task. However, PostgreSQL’s COALESCE function emerges as a beacon of simplicity and efficiency in handling this complexity. By allowing developers to seamlessly substitute NULL values with meaningful alternatives, COALESCE not only enhances the clarity and readability of query results but also ensures the reliability of data processing. Incorporating COALESCE into your PostgreSQL queries not only streamlines your code but also ensures that your database operations remain resilient and error-free.


An experience full-stack engineer well versed with Core Java, Spring/Springboot, MVC, Security, AOP, Frontend (Angular & React), and cloud technologies (such as AWS, GCP, Jenkins, Docker, K8).
Notify of

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Inline Feedbacks
View all comments
Back to top button