postgre 分组拼接字段并根据一定的顺序string_agg
时间: 2024-01-16 16:04:41 浏览: 176
Oracle迁postgre 不兼容字段、函数等更改
可以使用`string_agg()`函数和`ARRAY_AGG()`函数来实现根据一定顺序拼接字段。例如,以下是将字符串按照指定顺序拼接的示例:
```
SELECT id, string_agg(name, ',')
FROM (
SELECT id, name
FROM table_name
ORDER BY CASE WHEN gender = 'male' THEN 1 ELSE 2 END, age DESC
) AS sorted_table
GROUP BY id;
```
在这个例子中,我们首先使用`ORDER BY`子句对查询结果进行排序,其中男性排在女性前面,而同性别的记录按照年龄降序排序。然后,我们将排序后的结果作为子查询,并使用`string_agg()`函数将`name`字段拼接成一个以逗号分隔的字符串,并按照`id`字段进行分组。
请注意,我们在子查询中使用了`AS`关键字来给子查询结果集命名,以便在上层查询中使用该结果集。
阅读全文