求行合并的SQL

tomcat 2011-10-19 09:54:42
有一个表结构如下
col1 col2 col3
--------------
a b c
a b d
e f g
e f h

想求一条sql
搜索之后的结果为
col1 col2 col3
--------------
a b c,d
e f g,h

十分感谢~
...全文
60 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
cutebear2008 2011-10-19
  • 打赏
  • 举报
回复
厉害!
[Quote=引用 1 楼 cosio 的回复:]

SQL code
with t as
(
select 'a' a, 'b' b, 'c' c from dual
union all
select 'a' a, 'b' b, 'd' c from dual
union all
select 'e' a, 'f' b, 'g' c from dual
union all
select 'e' a, 'f' b, 'h' c from d……
[/Quote]
tomcat 2011-10-19
  • 打赏
  • 举报
回复
感谢各位的帮助,十分感谢,已经结贴
BenChiM888 2011-10-19
  • 打赏
  • 举报
回复

with t as
(
select 'a' a, 'b' b, 'c' c from dual
union all
select 'a' a, 'b' b, 'd' c from dual
union all
select 'e' a, 'f' b, 'g' c from dual
union all
select 'e' a, 'f' b, 'h' c from dual
)
select a,b,wm_concat(c)
from t
group by a,b;

benson_xi 2011-10-19
  • 打赏
  • 举报
回复
正解
[Quote=引用 1 楼 cosio 的回复:]
SQL code

with t as
(
select 'a' a, 'b' b, 'c' c from dual
union all
select 'a' a, 'b' b, 'd' c from dual
union all
select 'e' a, 'f' b, 'g' c from dual
union all
select 'e' a, 'f' b, 'h'……
[/Quote]
Kobayashi 2011-10-19
  • 打赏
  • 举报
回复
顶楼上的。。。
cosio 2011-10-19
  • 打赏
  • 举报
回复
with t as
(
select 'a' a, 'b' b, 'c' c from dual
union all
select 'a' a, 'b' b, 'd' c from dual
union all
select 'e' a, 'f' b, 'g' c from dual
union all
select 'e' a, 'f' b, 'h' c from dual
)
select a,b,max(substr(sys_connect_by_path(c,','),2))
from
( select a,b,c,row_number() over(partition by a,b order by a) rn from t)
start with rn=1 connect by rn-1=prior rn and a=prior a
group by a,b
order by a,b


--result:

a b c,d
e f g,h

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧