with t(col1,col2,col3) as(
select 11,22,'A1' from dual
union all select 11,22,'A2' from dual
union all select 11,22,'A3' from dual
)
select col1,col2,wm_concat(col3) col3 from t group by col1,col2;
------其他解决方案--------------------
--wm_concat排序是很乱的,如果需要指定排序,如
with t(col1,col2,col3) as(
select 11,22,'A1' from dual
union all select 11,22,'A2' from dual
union all select 11,22,'A3' from dual
)
select col1,col2,max(col3) col3
from (select col1,col2,wm_concat(col3) over (partition by col1,col2 order by col3) col3 from t)
group by col1,col2;
------其他解决方案-------------------- 可以通过将行合并到列的方法定义strcat函数,在网上可以查到;
然后select 列一 列二 strcat(列三) from table group by 列一 列二 就可以了,
使用union 的方式如果有很多行,处理起来很麻烦。 ------其他解决方案-------------------- 刚才忘了加逗号:
select 列一,列二,strcat(列三) from table group by 列一,列二
注意在strcat中可以定义是用什么符号连接列三