in

SDT Community Server

SDT Forums, Blogs, Photos server.

wego

Oracle竖变横一句通

设有如下表 T

A   B
-----------
1   01
1   02
1   03
2   04
2   05
3   06

执行如下 sql

select a,replace(max(sys_connect_by_path(b,';')),';','') b
 from (select a,b,
 (row_number() over(order by a,b)
 + dense_rank() over(order by a)) rn,
 min(b) over(partition by a) mb
 from t
 )
 start with b = mb
 connect by rn-1 = prior rn
 group by a

可得如下结果

A   B
--------------------
1   010203
2   0405
3   06


Published Sep 19 2007, 02:32 PM by wego
Filed under:

Comments

No Comments
Copyright SDT, 2006-2009. All rights reserved.