oracle列轉(zhuǎn)換成行 Oracle列轉(zhuǎn)行,行轉(zhuǎn)列?
Oracle列轉(zhuǎn)行,行轉(zhuǎn)列?oracle下可以用函數(shù)decode處理:select 產(chǎn)品名稱,sum(decode(季度,"第一季度",銷售額,0)) 第一季度銷售額,sum(decode(季度,"第
Oracle列轉(zhuǎn)行,行轉(zhuǎn)列?
oracle下可以用函數(shù)decode處理:
select 產(chǎn)品名稱,
sum(decode(季度,"第一季度",銷售額,0)) 第一季度銷售額,
sum(decode(季度,"第二季度",銷售額,0)) 第二季度銷售額,
sum(decode(季度,"第三季度",銷售額,0)) 第三季度銷售額,
sum(decode(季度,"第四季度",銷售額,0)) 第四季度銷售額,
from 表名
group by 產(chǎn)品名稱
oracle怎么把列轉(zhuǎn)為行顯示?
selectto_char(wm_concat(name))fromtablename使用wm_concat函數(shù)將列轉(zhuǎn)化成行,使用逗號(hào)分割。最后轉(zhuǎn)化成字符串
excel中怎樣把列數(shù)據(jù)變成行?
我是頭條號(hào):Excel小技巧的小編,分享一些辦公常用的技能,希望有我的分享,能提高大家的工作效率,如果覺(jué)得文章對(duì)你有用,請(qǐng)?jiān)谙路近c(diǎn)個(gè)贊,讓小編高興下,如果沒(méi)有解決你的問(wèn)題,請(qǐng)給我留言,我們進(jìn)一步探討
這個(gè)問(wèn)題,這在Excel里面叫做轉(zhuǎn)置,有兩種處理方法,都可以實(shí)現(xiàn)行列的轉(zhuǎn)換,手動(dòng)或者是使用函數(shù)
手動(dòng)-復(fù)制-選擇性粘貼(轉(zhuǎn)置)
1、選擇你需要轉(zhuǎn)換的數(shù)據(jù),按鍵盤(pán)上面的Ctrl C,復(fù)制一下
2、選中目標(biāo)位置的單元格,點(diǎn)右鍵,有一個(gè)轉(zhuǎn)職的圖標(biāo)(如圖),如果是較老版本的Excel軟件,可能需要選擇性粘貼-勾選轉(zhuǎn)職,就可以了;
函數(shù)實(shí)現(xiàn)
在Excel中有一個(gè)轉(zhuǎn)置的函數(shù),TRANSPOSE(待轉(zhuǎn)置的數(shù)據(jù)),這是一個(gè)數(shù)組函數(shù),所以請(qǐng)先選擇要存放轉(zhuǎn)置數(shù)據(jù)的單元格區(qū)域(注意,比如數(shù)據(jù)源區(qū)域?yàn)?行6列,轉(zhuǎn)置后就變成6行5列,所以此時(shí)需要選擇6行5列的區(qū)域),然后在輸入完函數(shù)后,需要俺鍵盤(pán)上面的Ctrl shift Enter三個(gè)鍵一起按,才能輸入輸入;
Oracle實(shí)現(xiàn)行轉(zhuǎn)換成列的方法?
數(shù)據(jù)表示例:假設(shè)要將name值作為行,course值作為列,轉(zhuǎn)換后效果為:對(duì)應(yīng)的SQL如下:方法1:使用表連接SELECT DISTINCT a.name,(SELECT score FROM grade b WHEREa.name=b.name AND b.course="語(yǔ)文") AS "語(yǔ)文",(SELECT score FROM grade b WHEREa.name=b.name AND b.course="數(shù)學(xué)") AS "數(shù)學(xué)",(SELECT score FROM grade b WHEREa.name=b.name AND b.course="英語(yǔ)") AS "英語(yǔ)"FROM grade a方法2:使用分組SELECT name,SUM(CASE course WHEN "語(yǔ)文" THEN score END) AS "語(yǔ)文",SUM(CASE course WHEN "數(shù)學(xué)" THEN score END) AS "數(shù)學(xué)",SUM(CASE course WHEN "英語(yǔ)" THEN score END) AS "英語(yǔ)"FROM grade GROUP BY name
oracle列名不確定,行轉(zhuǎn)列?
select decode(t.rn,1,t.單位名稱) as 單位名稱1 ,
decode(t.rn,2,t.單位名稱) as 單位名稱2,
decode(t.rn,3,t.單位名稱) as 單位名稱3,
from (
select c.單位名稱,to_number() over(partition by c.單位名稱) as rn
from table1 a,table2 b,table3 c
where a.id1 = b.id1
and b.id2=c.id2
) t
這是在知道多少行記錄數(shù)的情況下這樣實(shí)現(xiàn),如果不知道多少行,則最好用個(gè)中間表,搞個(gè)語(yǔ)句塊,把相關(guān)的數(shù)先放到中間表在進(jìn)行處理。