PostgreSQL: Using CONCAT and CONCAT_WS Functions to Combine Strings

Updated: January 4, 2024 By: Guest Contributor Post a comment

Introduction

Working with databases often involves manipulating text data, and PostgreSQL offers a robust set of functions to handle such scenarios efficiently. Among these functions are CONCAT and CONCAT_WS, key tools for string combination. In this post, we’ll delve into when these functions were added, their specific purposes, syntax, and parameters, provide code examples, and summarize their use cases in PostgreSQL.

CONCAT and CONCAT_WS

String concatenation is a frequent requirement across various programming contexts, and PostgreSQL introduced the CONCAT and CONCAT_WS functions to simplify this task within the SQL environment. CONCAT stands for ‘concatenate,’ and CONCAT_WS stands for ‘concatenate with separator.’ While both serve to merge strings, they include features that cater to different needs.

History and Purpose

The CONCAT and CONCAT_WS functions have been a part of PostgreSQL since version 9.1, which was released in September 2011. These functions allow users to merge two or more strings into a single string efficiently.

Syntax, Parameters, and Return Values

CONCAT

Syntax: CONCAT(str1, str2, ..., strN)
Parameters: str1, str2, ..., strN - the strings to concatenate.
Returns: A single string composed of the input strings concatenated in the order they are given.

CONCAT_WS

Syntax: CONCAT_WS(separator, str1, str2, ..., strN)
Parameters:
- separator: a string to be added between the strings to be concatenated.
- str1, str2, ..., strN: the strings to concatenate.
Returns: A single string composed of the input strings concatenated with the separator between each string.

Code Examples

Example 1: Basic Concatenation

Summary: This example demonstrates how to combine two simple text values using CONCAT.

-- Concatenating two strings
SELECT CONCAT('Hello, ', 'World!') AS greetings;

-- Result
-- greetings
-- Hello, World!

Example 2: Handling NULLs

Summary: This example shows how CONCAT automatically handles NULL values by ignoring them in the resulting string.

-- Concatenating strings with a NULL value
SELECT CONCAT('Hello, ', NULL, 'World!') AS greetings;

-- Result
-- greetings
-- Hello, World!

Example 3: Using CONCAT_WS

Summary: This example illustrates using CONCAT_WS to add a separator between merged strings.

-- Concatenating strings with a comma separator using CONCAT_WS
SELECT CONCAT_WS(', ', 'John', 'Doe') AS full_name;

-- Result
-- full_name
-- John, Doe

Example 4: Ignoring NULL in CONCAT_WS

Summary: Similar to CONCAT, CONCAT_WS does not include NULL values in the output, ensuring the separator is only placed between non-NULL strings.

-- Using CONCAT_WS with NULL values
SELECT CONCAT_WS(', ', 'John', NULL, 'Doe') AS full_name;

-- Result
-- full_name
-- John, Doe

Conclusion

In PostgreSQL, the CONCAT and CONCAT_WS functions greatly facilitate string manipulation, especially when dealing with the combination of multiple text values. Whether you need to merge strings straightforwardly or with a specific separator, these functions have you covered. They handle NULLs gracefully by excluding them from the output to avoid any unintended disruptions in your concatenation logic. It’s clear that both CONCAT and CONCAT_WS play an essential role in developing SQL queries that require string manipulation, making them valuable functions for any PostgreSQL user to master.