小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

oracle 行列轉(zhuǎn)換

 duduwolf 2005-10-12
[Q]如何實現(xiàn)行列轉(zhuǎn)換
[A]1、固定列數(shù)的行列轉(zhuǎn)換

student subject grade
---------------------------
student1 語文 80
student1 數(shù)學(xué) 70
student1 英語 60
student2 語文 90
student2 數(shù)學(xué) 80
student2 英語 100
……
轉(zhuǎn)換為
語文 數(shù)學(xué) 英語
student1 80 70 60
student2 90 80 100
……
語句如下:
select student,sum(decode(subject,‘語文‘, grade,null)) "語文",
sum(decode(subject,‘?dāng)?shù)學(xué)‘, grade,null)) "數(shù)學(xué)",
sum(decode(subject,‘英語‘, grade,null)) "英語"
from table
group by student

2、不定列行列轉(zhuǎn)換

c1 c2
--------------
1 我
1 是
1 誰
2 知
2 道
3 不
……
轉(zhuǎn)換為
1 我是誰
2 知道
3 不
這一類型的轉(zhuǎn)換必須借助于PL/SQL來完成,這里給一個例子
CREATE OR REPLACE FUNCTION get_c2(tmp_c1 NUMBER)
RETURN VARCHAR2
IS
Col_c2 VARCHAR2(4000);
BEGIN
FOR cur IN (SELECT c2 FROM t WHERE c1=tmp_c1) LOOP
Col_c2 := Col_c2||cur.c2;
END LOOP;
Col_c2 := rtrim(Col_c2,1);
RETURN Col_c2;
END;
/
SQL> select distinct c1 ,get_c2(c1) cc2 from table;即可

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多