<u id="1k2el"></u>
<u id="1k2el"></u>

      咨詢電話:0551-62903161

      學術交流

      首頁>官網首頁 > 教育教學 > 學術交流 >
      Oracle 11g 行列互換
      作者:未知  時間:2018-12-15 09:37
      Oracle 11g 提供了 pivot 和 unpivot 函數做行列互換
       在Oracle 11g中,Oracle 又增加了2個查詢:pivot(行轉列) 和unpivot(列轉行)
      測試如下:
      create table demo(id int,name varchar(20),nums int);  ---- 創建表
      insert into demo values(1, '蘋果', 1000);
      insert into demo values(2, '蘋果', 2000);
      insert into demo values(3, '蘋果', 4000);
      insert into demo values(4, '橘子', 5000);
      insert into demo values(5, '橘子', 3000);
      insert into demo values(6, '葡萄', 3500);
      insert into demo values(7, '芒果', 4200);
      insert into demo values(8, '芒果', 5500);
      commit;

      --分組查詢

      select name, sum(nums) nums from demo group by name
       行轉列查詢
      select * from (select name, nums from demo) pivot (sum(nums) for name in ('蘋果' 蘋果, '橘子', '葡萄', '芒果'));
      pivot(聚合函數 for 列名 in(類型)) ,其中 in(‘’) 中可以指定別名,in中還可以指定子查詢,比如 上面的例子可以改成:
      select * from (select name, nums from demo) pivot (sum(nums) for name in (select distinct name from demo));

      unpivot 行轉列

      顧名思義就是將多列轉換成1列中去
      案例:現在有一個水果表,記錄了4個季度的銷售數量,現在要將每種水果的每個季度的銷售情況用多行數據展示。
      創建表和數據
      create table Fruit(id int,name varchar(20), Q1 int, Q2 int, Q3 int, Q4 int);

      insert into Fruit values(1,'蘋果',1000,2000,3300,5000);
      insert into Fruit values(2,'橘子',3000,3000,3200,1500);
      insert into Fruit values(3,'香蕉',2500,3500,2200,2500);
      insert into Fruit values(4,'葡萄',1500,2500,1200,3500);
      select * from Fruit;


      列轉行查詢
      select id , name, jidu, xiaoshou from Fruit unpivot (xiaoshou for jidu in (q1, q2, q3, q4);


      XML類型

      上述pivot列轉行示例中,你已經知道了需要查詢的類型有哪些,用in()的方式包含,假設如果您不知道都有哪些值,您怎么構建查詢呢?

      pivot 操作中的另一個子句 XML 可用于解決此問題。該子句允許您以 XML 格式創建執行了 pivot 操作的輸出,在此輸出中,您可以指定一個特殊的子句 ANY 而非文字值

      示例如下:

       

      select * from ( select name, nums as "Purchase Frequency" from demo t) pivot xml ( sum( "Purchase Frequency" ) for name in (any));

      使用任何 XML 分析器中的輸出生成更有用的輸出
        輸出類似:
       <PivotSet><item><column name = "NAME">芒果</column><column name = "購買數量">9700</column></item><item><column name = "NAME">蘋果</column><column name = "購買數量">7000</column></item><item><column name = "NAME">葡萄</column><column name = "購買數量">3500</column></item><item><column name = "NAME">橘子</column><column name = "購買數量">8000</column></item></PivotSet>

      友情鏈接:北大青鳥科海學院合肥濱湖職業技術學院合肥公交技校 安徽衛生健康職業學院
      獲獎信息:

      地鐵:乘地鐵1號線到合工大南區B出口,向南800米即到。

      聯系我們:招生老師15056993965(微信手機同號) ? ? ?0551-62903161

      地址:合肥市包河區馬鞍山路富成大廈4樓北大青鳥(合工大東門斜對面)

      日韩黄色毛片在线观看_96精品人妻大胆无码_亚洲一区二区在线波多野_在线视频一区二区三期
      <u id="1k2el"></u>
      <u id="1k2el"></u>

          亚洲制服丝袜中文字幕自拍 | 亚洲日韩欧美香蕉一区 | 亚洲国产精品人人做人人爱 | 在线波多野结衣绝顶高潮抖动 | 午夜免费视频国产在线 | 亚洲一区二区三区日韩91 |