如何使用SQL将列数据转换为逗号分隔值的行数据

时间:2017-04-04 14:29:07

标签: sql oracle

我有一张像跟随

的表格

enter image description here

我想要像

那样

enter image description here

如何使用Oracle数据库中的SQL实现此目的

1 个答案:

答案 0 :(得分:0)

您正在寻找listagg()。唯一需要注意的是,您需要指定值的排序:

select stdname, listagg(marks, ', ') within group (order by ?) as marks
from t
group by stdname;

如果你想按标记的顺序排列它们:

select stdname, listagg(marks, ', ') within group (order by marks desc) as marks
from t
group by stdname;