我有表格产品,有三个列ID,名称和成熟度,如下所示。
id name maturity
-------------------------------
224 cash 1d
224 cash 2d
224 cash 3d
224 cash 4d
225 bond 5w
225 bond 6w
225 bond 7w
225 bond 8w
这里我需要输出像(我的意思是如果我发出一个sql语句)
224 cash 1d,2d,3d,4d
225 bond 5w,6w,7w,8w
可以请一些人帮忙。
答案 0 :(得分:0)
LISTAGG函数正是您所寻找的(至少在Oracle 11g中)。
完整的语法示例:
SELECT id, name, LISTAGG(maturity, ', ') WITHIN GROUP (ORDER BY maturity)
FROM your_table
GROUP BY id
注意:如果需要,您还可以将分组条件更改为GROUP BY name
。