最初由 Asda双心客 发布
[B]这个看上去象行列转换..好像论坛上有材料...找找看吧 [/B]
对于不定数的进行转换肯定要写函数,不过对于LINKADMIN列出的数据还是可以用SQL处理的
SQL> select max(rk) from (select row_number() over(partition by age order by name) rk from tst_one);
MAX(RK)
----------
3
SQL> select a.age, b.cou ,a.name_list from
(select age,max(decode(rk,1,name,null))
||','||max(decode(rk,2,name,null))
||','||max(decode(rk,3,name,null)) name_list
from
(select age,name,row_number() over(partition by age order by name) rk
from tst_one )group by age) a,
(select age,count(*) cou from tst_one group by age) b
where a.age=b.age
AGECOU NAME_LIST
---- ---------- --------------------------------
22
3 A,B,C
24
1 D,,
26
2 E,F,
|