欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

oracle如何轉(zhuǎn)換行列,oracle中行轉(zhuǎn)列

怎樣將oracle中的列變成行

固定列數(shù)的行列轉(zhuǎn)換如

創(chuàng)新互聯(lián)2013年至今,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目成都網(wǎng)站設(shè)計、成都做網(wǎng)站網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元崇陽做網(wǎng)站,已為上家服務(wù),為崇陽各地企業(yè)和個人服務(wù),聯(lián)系電話:13518219792

student subject grade

---------------------------

student1 語文 80

student1 數(shù)學 70

student1 英語 60

student2 語文 90

student2 數(shù)學 80

student2 英語 100

轉(zhuǎn)換為

語文 數(shù)學 英語

student1 80 70 60

student2 90 80 100

語句如下:

select student,sum(decode(subject,'語文', grade,null)) "語文",

sum(decode(subject,'數(shù)學', grade,null)) "數(shù)學",

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;

oracle 行和列轉(zhuǎn)換

如果你要做轉(zhuǎn)換查詢,真心勸你不要這么干,我的寫法很麻煩,一張表不停的查詢,邏輯讀肯定搞得要死。

如果是往下面這張表灌數(shù),那么可以寫循環(huán),慢慢來一行對應(yīng)一列,可以根據(jù)表的列和數(shù)據(jù)的對應(yīng)關(guān)系往里面灌,這個相對簡單些。

我的寫法大概是子查詢+union all 上面為a表

那么就寫為select ‘第一季度' 銷售額,(select 第一季度銷售額 from a where 產(chǎn)品名稱='奶酪')奶酪,(select 第一季度銷售額 from a where 產(chǎn)品名稱='啤酒') from dual

union all

還像上面那么寫,寫第二季度

union all

第三季度

union all

第四季度

一張表重讀查詢8次,如果表很大,我估計機器會宕掉的。

因為單獨從一列來看也可以理解為列轉(zhuǎn)行,所以用case when寫也可以,這么寫似乎讀取的次數(shù)會少些,不過要用到group by分組,天知道二者最后誰的消耗大。不過如果表很大的話,還是那句話,建議新建表然后灌數(shù),這么直接查,真的會死掉的。

以上為個人建議,如果找到什么好寫法,也可以研究下。

oracle 行列轉(zhuǎn)換問題

方法一:最好理解

select?t.指標名

,sum(decode(t.工廠,'一廠',t.指標值,0))?一廠

,sum(decode(t.工廠,'二廠',t.指標值,0))?二廠

from?數(shù)據(jù)表?t

group?by?t.指標名

方法二:用oracle11g新特性Pivot,也很好理解

select?指標名,"一廠","二廠"

from?數(shù)據(jù)表?t

pivot?(sum(t.指標值)?for?"工廠"?in?('一廠'?as?"一廠",'二廠'?as?"二廠"))

文章名稱:oracle如何轉(zhuǎn)換行列,oracle中行轉(zhuǎn)列
當前網(wǎng)址:http://chinadenli.net/article10/heccgo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序網(wǎng)站營銷Google服務(wù)器托管網(wǎng)站收錄動態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)