oracle列轉(zhuǎn)換成行 Oracle列轉(zhuǎn)行,行轉(zhuǎn)列?
Oracle列轉(zhuǎn)行,行轉(zhuǎn)列?oracle下可以用函數(shù)decode處理:select 產(chǎn)品名稱(chēng),sum(decode(季度,"第一季度",銷(xiāo)售額,0)) 第一季度銷(xiāo)售額,sum(decode(季度,"第
Oracle列轉(zhuǎn)行,行轉(zhuǎn)列?
oracle下可以用函數(shù)decode處理:
select 產(chǎn)品名稱(chēng),
sum(decode(季度,"第一季度",銷(xiāo)售額,0)) 第一季度銷(xiāo)售額,
sum(decode(季度,"第二季度",銷(xiāo)售額,0)) 第二季度銷(xiāo)售額,
sum(decode(季度,"第三季度",銷(xiāo)售額,0)) 第三季度銷(xiāo)售額,
sum(decode(季度,"第四季度",銷(xiāo)售額,0)) 第四季度銷(xiāo)售額,
from 表名
group by 產(chǎn)品名稱(chēng)
Oracle逗號(hào)分隔列轉(zhuǎn)行實(shí)現(xiàn)方法?
在做系統(tǒng)時(shí),經(jīng)常會(huì)遇到在一個(gè)字段中,用逗號(hào)或其他符號(hào)分隔存儲(chǔ)多個(gè)信息,例如保存某個(gè)用戶(hù)的一對(duì)多權(quán)限時(shí),在權(quán)限組這個(gè)字段中,就會(huì)逗號(hào)分隔保存多個(gè)權(quán)限編號(hào)。
那么,現(xiàn)在如果給出一個(gè)權(quán)限編號(hào),要去檢索出用后這個(gè)權(quán)限的用戶(hù)集合,就會(huì)需要在逗號(hào)分隔的多個(gè)權(quán)限編號(hào)中去匹配給出的這個(gè)權(quán)限編號(hào)。如果使用like去做,一則效率不高,二則匹配不精確。因此用到了逗號(hào)分隔列轉(zhuǎn)行的方法。目前該方法只適合在oracle數(shù)據(jù)庫(kù)中使用。該方法只需要sql語(yǔ)句就可以實(shí)現(xiàn)列轉(zhuǎn)行。
oracle中怎么把行轉(zhuǎn)變成列,列轉(zhuǎn)變成行?
select to_char(wm_concat(name)) from tablename使用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的clob字段進(jìn)行列轉(zhuǎn)行?
你認(rèn)為varchar2能處理,把CLOB字段做個(gè)轉(zhuǎn)換,中間加個(gè)過(guò)渡表,可以使用dbms_lob.substr函數(shù)。