请教大家一个问题。如何实现[行转列\列转行]?
原图如下:
 http://hi.csdn.net/attachment/201007/15/146606_1279186853cGzG.jpg我想实现这种效果:列字段为[公司名称].
指标名称    土木公司     一分司   ……
合同额        4243          442
经营额         424          432
……

解决方案 »

  1.   


    create table tb 
    (company varchar2(20),contacts number(18,2),sales number(18,2),profits number(18,2));insert into tb values('土木公司',578760,89080,42420);
    insert into tb values('一分司',1000.56,42323,5607.32);
    insert into tb values('北京公司',324,7654,565);
    insert into tb values('二分司',3534,245,7464);select catalog "指标名称",
    max(decode(company,'土木公司',amount)) "土木公司",
    max(decode(company,'一分司',amount)) "一分司",
    max(decode(company,'北京公司',amount)) "北京公司",
    max(decode(company,'二分司',amount)) "二分司"
    from (select company,
    decode(rn,1,'合同额',2,'营业额',3,'利润额') catalog,
    decode(rn,1,contacts,2,sales,3,profits) amount
    from tb, (select rownum rn from dual connect by rownum<4) t) t
    group by catalog;
    /*
    指标名称 土木公司                   一分司                    北京公司                   二分司                    
    ---- ---------------------- ---------------------- ---------------------- ---------------------- 
    合同额        578760                 1000.56                324                    3534                   
    营业额        89080                  42323                  7654                   245                    
    利润额        42420                  5607.32                565                    7464                   
    */drop table tb purge;