熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

在oracle中進行列行轉換

2013-11-13 22:24:13  來源: Oracle 

  固定列數的行列轉換如

  student subject grade
       

  student 語文

  student 數學

  student 英語

  student 語文

  student 數學

  student 英語

  轉換為

  語文 數學 英語

  student

  student

  語句如下

  select studentsum(decode(subject語文 gradenull)) 語文

  sum(decode(subject數學 gradenull)) 數學

  sum(decode(subject英語 gradenull)) 英語

  from table

  group by student

  不定列行列轉換如

  c c
       
       

  

  

  

  

  
       
        轉換為

   我是誰

   知道

  

  這一類型的轉換必須借助於PL/SQL來完成這裡給一個例子

  CREATE OR REPLACE FUNCTION get_c(tmp_c NUMBER)

  RETURN VARCHAR

  IS

  用於返回值

  Col_c VARCHAR();

  BEGIN

  FOR cur IN (SELECT c FROM t WHERE c=tmp_c) LOOP

  Col_c := Col_c||curc;

  END LOOP;

  Col_c := rtrim(Col_c);

  RETURN Col_c;

  END;


From:http://tw.wingwit.com/Article/program/Oracle/201311/18997.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.