一个表tab里有数据a1,a2,a3,a4,a5,b1,b2,b3,c1
如何查询能得到
列名:   序号     a         b           c
值:      1      a1        b1           c1
         2      a2        b2
         3      a3        b3
         4      a4
         5      a5

解决方案 »

  1.   

    with t as(
        select 'a1' as a from dual union
         select        'a2' as a from dual union
         select       'a3' as a from dual union
            select    'a4' as a from dual union
          select      'a5' as a from dual union
         select       'b1' as a from dual union
           select     'b2' as a from dual union
          select      'b3' as a from dual union
     select   'c1' as a from dual)select max(case substr(a,1,1) when 'a' then a else null end) a,
    max(case substr(a,1,1) when 'b' then a else null end) b,
    max(case substr(a,1,1) when 'c' then a else null end) c
     from t
    group by substr(a,2,1)
    order by substr(a,2,1)