一个树形结构的表,如下:
id      name  parent_id
1 org10   0
2 org11   1
3 org20   0
4 org12   1
5 org5   2
6 org6   5
16 org16   6
26 org26   1
0 org0     -1从id=5的结点作为root,遍历其父亲结点的关系。
select * from tree_test  
start with id = 5  
connect by prior parent_id = id 
得到结果如下:
id      name  parent_id
5 org5 2
2 org11 1
1 org10 0
0 org0 -1请问大家有什么方法,可以将上面的查询结果的id列,展示成 横向扩展的一条记录呢?
5 2 1 0

解决方案 »

  1.   

    又是一个雷人的需求…对上面结果按rownum来行转列。找下行转列,一搜一大堆
      

  2.   

    SELECT SUM(decode(r_num, 1, id)) one,
           SUM(decode(r_num, 2, id)) two,
           SUM(decode(r_num, 3, id)) three,
           SUM(decode(r_num, 4, id)) four
    FROM (SELECT id, rownum r_num FROM "你的结果集");
      

  3.   

    oracle10g以上版本可以使用:
    select replace(wm_concat(id),',',' ')
    from(
    select * from tree_test  
    start with id = 5  
    connect by prior parent_id = id 
    );
      

  4.   

    wm_concat
    前几天貌似看过了,又忘记了,谢谢,重新学习了下