PostgreSQL STRING_AGG Function
Summary: in this tutorial, you will learn how to use the PostgreSQL STRING_AGG()
function to concatenate strings and place a separator between them.
Introduction to PostgreSQL STRING_AGG() function
The PostgreSQL STRING_AGG()
function is an aggregate function that concatenates a list of strings and places a separator between them. It does not add the separator at the end of the string.
The following shows the syntax of the STRING_AGG()
function:
The STRING_AGG()
function accepts two arguments and an optional ORDER BY
clause.
expression
is any valid expression that can resolve to a character string. If you use other types than character string type, you need to explicitly cast these values of that type to the character string type.separator
is the separator for concatenated strings.
The order_by_clause
is an optional clause that specifies the order of concatenated results. It has the following form:
The STRING_AGG()
is similar to the ARRAY_AGG()
function except for the return type. The return value of the STRING_AGG()
function is a string whereas the return value of the ARRAY_AGG()
function is an array.
Like other aggregate functions such as AVG()
, COUNT()
, MAX()
, MIN()
, and SUM()
, the STRING_AGG()
function is often used with the GROUP BY
clause.
PostgreSQL STRING_AGG() function examples
We will use the film
, film_actor
, and actor
tables from the sample database for the demonstration:
1) Using PostgreSQL STRING_AGG() function to generate a list of comma-separated values
This example uses the STRING_AGG()
function to return a list of actor’s names for each film from the film
table:
Here is the partial output:
2) Using the PostgreSQL STRING_AGG() function to generate a list of emails
The following example uses the STRING_AGG()
function to build an email list for each country, with emails separated by semicolons:
The following picture shows the partial output:
Summary
- Use the PostgreSQL
STRING_AGG()
function to concatenate strings and place a separator between them.