string_agg 高斯
时间: 2025-01-06 15:47:34 浏览: 6
在PostgreSQL数据库中,`string_agg` 是一个聚合函数,用于将多个字符串值连接成一个字符串,并在每个值之间插入指定的分隔符。这个函数在处理需要将多行数据合并为单行字符串的场景中非常有用。
以下是 `string_agg` 的一些基本用法和示例:
### 基本语法
```sql
string_agg(expression, delimiter)
```
- `expression`:要连接的字符串表达式。
- `delimiter`:用于分隔每个字符串的分隔符。
### 示例
假设有一个名为 `employees` 的表,包含以下数据:
| id | name |
|--|-------|
| 1 | Alice |
| 2 | Bob |
| 3 | Carol |
我们可以使用 `string_agg` 将所有员工的姓名连接成一个字符串:
```sql
SELECT string_agg(name, ', ') AS employee_names
FROM employees;
```
执行上述查询后,结果将是:
| employee_names |
|-----------------|
| Alice, Bob, Carol |
### 高级用法
`string_agg` 还可以与 `GROUP BY` 子句结合使用,以按组聚合字符串。例如,假设有一个 `orders` 表,包含以下数据:
| order_id | product |
|----------|----------|
| 1 | Apple |
| 1 | Banana |
| 2 | Cherry |
| 2 | Date |
| 3 | Elderberry |
我们可以按 `order_id` 分组,并将每个订单的产品名称连接成一个字符串:
```sql
SELECT order_id, string_agg(product, ', ') AS products
FROM orders
GROUP BY order_id;
```
执行上述查询后,结果将是:
| order_id | products |
|----------|-------------------|
| 1 | Apple, Banana |
| 2 | Cherry, Date |
| 3 | Elderberry |
阅读全文