Basics
- How to Insert
- How to Update
- How to Delete
- How to Trim Strings
- How to Use substring()
- How to Use substring() with RegEx to Extract a String
- How to Replace Substrings
- How to Modify Arrays
- How to Compare Arrays
- How to Concatenate Strings
- How to Convert the Case of a String
- How to Create an Array
- How to Insert Data Into an Array
- How to Query Arrays
- How to Use string_agg()
Database Management
- How to Create a Table
- How to Drop a Table
- How to Rename a Table
- How to Truncate a Table
- How to Duplicate a Table
- How to Add a Column
- How to Change a Column Name
- How to Add a Default Value
- How to Remove a Default Value From a Column
- How to Add a Not Null Constraint
- How to Remove a Not Null Constraint
- How to Add an Index
- How to Drop an Index
- How to Create a View
- How to Drop a View
- How to Reset Sequence
- How to Drop a Column
Dates and Times
Analysis
- How to Use nullif()
- How to Use Lateral Joins
- How to Calculate Percentiles
- How to Get the First Row per Group
- How to Use generate_series to Avoid Gaps in Data
- How to Do Type Casting
- How to Write a Common Table Expression
- How to Import a CSV using Copy
- How to Compare Two Values When One Is Null
- How to Use Coalesce
- How to Write a Case Statement
- How to Use Filter to Have Multiple Counts
- How to Calculate Cumulative Sum-Running Total
- How to Query a JSON Column
How to Use COALESCE in PostgreSQL
The COALESCE
function in PostgreSQL is a powerful tool that helps handle NULL
values by returning the first non-NULL
value from a list of expressions.
This article will walk you through how to use COALESCE
effectively in your SQL queries.
What is COALESCE?
The COALESCE
function takes two or more arguments and returns the first one that is not NULL
.
It’s especially useful when you want to provide default values or avoid NULL
results in query outputs.
COALESCE(value1, value2, ..., valueN)
Basic Example
Consider a table called users
with the following columns:
id
, first_name
, last_name
, and nickname
.
SELECT first_name, COALESCE(nickname, last_name) AS display_name FROM users;
This query will display the nickname
if it’s available; otherwise, it will fall back to last_name
.
Why Use COALESCE?
- Provide default values when columns are
NULL
. - Simplify complex
CASE
statements. - Avoid
NULL
values in calculations or concatenations.
Advanced Example
Let’s calculate total price, using discount_price
if it’s available, otherwise regular_price
.
SELECT product_name, COALESCE(discount_price, regular_price) AS final_price FROM products;
COALESCE vs. CASE
While both COALESCE
and CASE
can handle NULL
values, COALESCE
is often more concise and easier to read for straightforward defaults.
-- Using CASE
SELECT product_name,
CASE
WHEN discount_price IS NOT NULL THEN discount_price
ELSE regular_price
END AS final_price
FROM products;
-- Using COALESCE
SELECT product_name, COALESCE(discount_price, regular_price) AS final_price FROM products;
Best Practices
- Always list expressions from most preferred to least preferred.
- Be aware of data types;
COALESCE
returns the data type of the highest precedence argument. - Use
COALESCE
to make reports and UI more user-friendly by avoidingNULL
displays.
Conclusion
The COALESCE
function is a simple yet indispensable tool when working with PostgreSQL. By using it wisely, you can write cleaner, safer, and more robust queries that handle missing data gracefully.
Try incorporating COALESCE
into your queries today to make your applications more resilient!