真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

oracle如何轉(zhuǎn)換行列,oracle行列轉(zhuǎn)換方法匯總

oracle 行和列轉(zhuǎn)換

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

站在用戶的角度思考問(wèn)題,與客戶深入溝通,找到錦江網(wǎng)站設(shè)計(jì)與錦江網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:網(wǎng)站設(shè)計(jì)制作、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、主機(jī)域名、虛擬空間、企業(yè)郵箱。業(yè)務(wù)覆蓋錦江地區(qū)。

如果是往下面這張表灌數(shù),那么可以寫循環(huán),慢慢來(lái)一行對(duì)應(yīng)一列,可以根據(jù)表的列和數(shù)據(jù)的對(duì)應(yīng)關(guān)系往里面灌,這個(gè)相對(duì)簡(jiǎ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次,如果表很大,我估計(jì)機(jī)器會(huì)宕掉的。

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

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

怎樣將oracle中的列變成行

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

student subject grade

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

student1 語(yǔ)文 80

student1 數(shù)學(xué) 70

student1 英語(yǔ) 60

student2 語(yǔ)文 90

student2 數(shù)學(xué) 80

student2 英語(yǔ) 100

轉(zhuǎn)換為

語(yǔ)文 數(shù)學(xué) 英語(yǔ)

student1 80 70 60

student2 90 80 100

語(yǔ)句如下:

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

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

sum(decode(subject,'英語(yǔ)', grade,null)) "英語(yǔ)"

from table

group by student

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

c1 c2

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

1 我

1 是

1 誰(shuí)

2 知

2 道

3 不

......

轉(zhuǎn)換為

1 我是誰(shuí)

2 知道

3 不

這一類型的轉(zhuǎn)換必須借助于PL/SQL來(lái)完成,這里給一個(gè)例子

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)換問(wèn)題

方法一:最好理解

select?t.指標(biāo)名

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

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

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

group?by?t.指標(biāo)名

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

select?指標(biāo)名,"一廠","二廠"

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

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

Oracle數(shù)據(jù)庫(kù)行列轉(zhuǎn)換

只限于例子中數(shù)據(jù)。

select?sum(y),sum(z)?from

?(select?1?x,decode(a,1,a)?y,decode(a,2,a)?z?from?t?union

? select?2?x,decode(b,11,b)?y,decode(b,22,b)?y?from?t?union

? select?3?x,decode(c,111,c)?y,decode(c,333,c)?z?from?t)

group?by?x;


當(dāng)前標(biāo)題:oracle如何轉(zhuǎn)換行列,oracle行列轉(zhuǎn)換方法匯總
本文URL:http://weahome.cn/article/hsised.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部