如何在Oracle 10g中根据指定列将n条记录合并为一条记录? [复制]
Posted
技术标签:
【中文标题】如何在Oracle 10g中根据指定列将n条记录合并为一条记录? [复制]【英文标题】:How to merge n records into one record based on specified column, in Oracle 10g? [duplicate] 【发布时间】:2015-08-28 14:05:02 【问题描述】:表:
|COL_1 | COL_2 | COL_3
|------ | ------ |--------
|A |A1 | 1
|A |A2 | 3
|A |A3 | 2
|B |B1 | 2
|B |B2 | 1
COL_3 用于订购。
我想得到这个:
A |A1,A3,A2
B |B2,B1
任何意见或建议将不胜感激。 谢谢。
纯 SQL 脚本,拜托。
更新 我下面的答案是针对 Oracle 11,但在 Oracle 10g 中出现错误:
ORA-00923: FROM keyword not found where expected
对于 Oracle 10g,解决方案是什么? 谢谢。
【问题讨论】:
【参考方案1】:对于 Oracle 11,请使用:
select col_1
, listagg(col_2, ', ') within group (order by col_3) as col_new
from tbl_tmp
group by col_1;
Run here : SQL Fiddle
Refrence:https://***.com/questions/17501418/oracle-string-aggregation
【讨论】:
以上是关于如何在Oracle 10g中根据指定列将n条记录合并为一条记录? [复制]的主要内容,如果未能解决你的问题,请参考以下文章