📜  PostgreSQL – STRING_AGG()函数

📅  最后修改于: 2022-05-13 01:57:15.937000             🧑  作者: Mango

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;

输出: