假设有一个表格 students
包含以下数据:
使用以下 SQL 语句可以实现:
SELECT class, LISTAGG(name, ', ') WITHIN GROUP (ORDER BY id) AS students FROM students GROUP BY class;
LISTAGG
函数的语法为:
LISTAGG(expr, delimiter) WITHIN GROUP (ORDER BY order_expr)
其中:
expr
:要拼接的字段或表达式delimiter
:拼接时使用的分隔符order_expr
:用于排序的字段或表达式(可选) 在上面的示例中,expr
为name
,delimiter
为,
,order_expr
为id
。WITHIN GROUP (ORDER BY id)
表示按照学生的id
排序后再进行拼接。 注意,LISTAGG
函数只适用于 Oracle 数据库。如果使用其他数据库,可能需要使用不同的函数或语法来实现类似的功能。
评论