PostgreSQL – STRING_AGG()函数
PostgreSQL 中的 STRING_AGG()函数是一个聚合函数,用于连接字符串列表并在它们之间放置分隔符。
Syntax: STRING_AGG ( expression, separator [order_by_clause] )
我们来分析一下上面的语法。上面的函数接受两个参数和一个可选的 ORDER BY 子句。
-
expression
是可以解析为一个 -
separator
是连接字符串的分隔符。
现在让我们看一些例子。例如,我们将使用示例数据库(即 dvdrental)。
示例 1:
我们将使用以下命令从film
表中查询每部电影的演员姓名列表:
SELECT
f.title,
STRING_AGG (
a.first_name || ' ' || a.last_name,
', '
ORDER BY
a.first_name,
a.last_name
) actors
FROM
film f
INNER JOIN film_actor fa USING (film_id)
INNER JOIN actor a USING (actor_id)
GROUP BY
f.title;
输出:
示例 2:
在此示例中,我们将从国家/ country
表中列出每个国家/地区的电子邮件列表。每个列表中的电子邮件以分号分隔。为此,我们使用以下命令:
SELECT
country,
STRING_AGG (email, ';') email_list
FROM
customer
INNER JOIN address USING (address_id)
INNER JOIN city USING (city_id)
INNER JOIN country USING (country_id)
GROUP BY
country
ORDER BY
country;
输出: