如何在oracle中将值列表转换为逗号分隔值

Posted

技术标签:

【中文标题】如何在oracle中将值列表转换为逗号分隔值【英文标题】:How to make list of values into comma separated values in oracle 【发布时间】:2015-07-16 11:34:34 【问题描述】:
id date
1  30/12/1987
1  20/01/1988
1  15/02/2000
2  02/02/2014
2  15/02/2014
3  10/10/1988

结果应该是

1 30/12/1987,20/01/1988,15/02/2000
2 02/02/2014,15/02/2014
3 10/10/1988

【问题讨论】:

Is there any function in oracle similar like group_concat of mysql?的可能重复 在 11g 中使用 LIASTAGG 【参考方案1】:

这样

SELECT 
    id,
    LISTAGG(date, ', ') WITHIN GROUP (ORDER BY id) "Dates"
FROM mytable
GROUP BY id

【讨论】:

【参考方案2】:

简单的方法:

SELECT id, wm_concat(Date) as Dates
FROM   tablename
GROUP BY id;

【讨论】:

“由于 WM_CONCAT 未记录且不受 Oracle 支持,因此建议不要在生产系统中使用它”psoug.org/definition/WM_CONCAT.htm 更糟糕的是“另外,WM_CONCAT 已从 12c 开始删除”oracle-base.com/articles/misc/…跨度>

以上是关于如何在oracle中将值列表转换为逗号分隔值的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Azure Databricks SQL 中将字段值转换为逗号分隔

如何在 BASH 中将制表符分隔值 (TSV) 文件转换为逗号分隔值 (CSV) 文件?

如何将逗号分隔值转换为oracle中的行?

oracle中PLSQL存储过程中如何使用逗号分隔的集合(逗号分隔字符串转换为一个集合)

在mysql中将分隔字符串转换为多个值

如何在 Oracle 中将多行组合成逗号分隔的列表? [复制]