可以用pl/sql写吗?如果可以,我倒有点思路

解决方案 »

  1.   

    用decode函数
    select a, sum(decode(b,b1_value,c,0)) B1,sum(decode(b,b2_value,c,0)) B2, ...
    from yourtable
    group by a
      

  2.   

    TO Lastdrop(空杯) :
    数据库中B的值是不确定的,只知道最多有19种情况,不知道真正有多少,具体值更不知道了。生成的表还是那种情况,没有值或B只有<19种情况下相应的值显示空格。
    再次的感谢!!
      

  3.   

    试试:select a1.a, max(decode(a2.row_no,1,c,' ')) B1,max(decode(a2.row_no,2,c,' ')) B2, ..  max(decode(a2.row_no,19,c,' ')) B19
    from yourtable a1, (select rownum row_no, b from (select distinct b from yourtable) ) a2
    where a1.b=a2.b
    group by a1.a通过rownum来确定19种情况。