1 select ID,max(substr((sys_connect_by_path(name,',')),2)) cola
2 from (
3 select id,name,
4 rownum rnum,
5 row_number() over(partition by id order by id) rn1
6 from test_pppp
7 )
8 start with rn1=1
9 connect by rnum-1=prior rnum
10* group by id
SQL> select * from test_pppp;
ID NAME
---------- ----------
A AAA
A BBB
A CCC
B AAA
B CCC
ID COLA
---------- ------------------------------------------
A AAA,BBB,CCC
B AAA,CCC
本文介绍了一种使用 Oracle SQL 进行复杂分组与层级连接查询的方法,通过具体的例子展示了如何从 test_pppp 表中选取 ID 和名称字段,并使用 sys_connect_by_path 函数按 ID 对名称进行分组,最终输出每个 ID 下的所有名称。

375

被折叠的 条评论
为什么被折叠?



