国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術(shù)文章
文章詳情頁

Oracle使用pivot和unpivot函數(shù)實(shí)現(xiàn)行列轉(zhuǎn)換

瀏覽:4日期:2023-09-15 20:49:58
目錄一、需求說明 二、實(shí)現(xiàn)方法2.1、實(shí)現(xiàn)將上圖內(nèi)容轉(zhuǎn)為行——decode函數(shù)2.2、實(shí)現(xiàn)將上圖內(nèi)容轉(zhuǎn)為行——case when函數(shù)2.3、實(shí)現(xiàn)將上圖內(nèi)容轉(zhuǎn)為行——pivot函數(shù)2.4、實(shí)現(xiàn)將上圖內(nèi)容轉(zhuǎn)為列——unpivot函數(shù)一、需求說明

項(xiàng)目開發(fā)過程中涉及到oracle數(shù)據(jù)庫的數(shù)據(jù)操作;但是需要將數(shù)據(jù)進(jìn)行列的互轉(zhuǎn),通過查閱資料可知在oracle中有三種方式可以實(shí)現(xiàn)行列互轉(zhuǎn):

①使用decode 函數(shù);

②使用case when 函數(shù);

③使用pivot函數(shù);

參考:Oracle中實(shí)現(xiàn)行列互轉(zhuǎn)的方法分享

二、實(shí)現(xiàn)方法

我這里有一個(gè)數(shù)據(jù)表內(nèi)容如下:

2.1、實(shí)現(xiàn)將上圖內(nèi)容轉(zhuǎn)為行——decode函數(shù)select 'name', max(decode('course', '語文', 'score')) 語文, max(decode('course', '數(shù)學(xué)', 'score')) 數(shù)學(xué), max(decode('course', '英語', 'score')) 英語, sum('score') 總分from 'grade'group by 'name';2.2、實(shí)現(xiàn)將上圖內(nèi)容轉(zhuǎn)為行——case when函數(shù)select 'name', max(case when 'course' = '語文' then 'score' end) 語文, max(case when 'course' = '數(shù)學(xué)' then 'score' end) 數(shù)學(xué), max(case when 'course' = '英語' then 'score' end) 英語, sum('score') 總分from 'grade' group by 'name';2.3、實(shí)現(xiàn)將上圖內(nèi)容轉(zhuǎn)為行——pivot函數(shù)

pivot函數(shù)的語法:

pivot(聚合函數(shù) for 列名 in(類型)) select t.* from((select * from 原表名稱) pivot( max(需轉(zhuǎn)的列名稱) for 需轉(zhuǎn)的列名稱 in(需轉(zhuǎn)列對(duì)應(yīng)的值1,需轉(zhuǎn)列對(duì)應(yīng)的值2,需轉(zhuǎn)列對(duì)應(yīng)的值3 ))t

SELECT t.*,(t.語文+t.數(shù)學(xué)+t.英語)總分 from ((SELECT 'name','course','score' from 'grade')pivot( max('score') for 'course' in('語文' 語文,'數(shù)學(xué)' 數(shù)學(xué),'英語' 英語)))t ORDER BY 'name';

2.4、實(shí)現(xiàn)將上圖內(nèi)容轉(zhuǎn)為列——unpivot函數(shù)

需要轉(zhuǎn)的內(nèi)容如下圖:

unpivot函數(shù)的語法:

SELECT 列名稱,需定義的列1名稱,需定義的列2名稱 from 表名稱 unpivot (需定義的列2名稱 for 需定義的列1名稱 in(列2值1,列2值2,列2值3));

SELECT 'name' 名字,course 課程,score 分?jǐn)?shù) from 'grade2' unpivot (score for course in('chinese','math','english'));

SELECT 名字,course 課程,score 分?jǐn)?shù) from (SELECT 'name' 名字,'chinese' 語文,'math' 數(shù)學(xué),'english' 英語 from 'grade2') unpivot (score for course in(語文,數(shù)學(xué),英語))

到此這篇關(guān)于Oracle使用pivot和unpivot函數(shù)實(shí)現(xiàn)行列轉(zhuǎn)換的文章就介紹到這了,更多相關(guān)Oracle行列轉(zhuǎn)換內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Oracle 數(shù)據(jù)庫
主站蜘蛛池模板: 伊人久久青草青青综合 | 亚洲精品久久久久久久久久久网站 | 亚洲国产三级在线观看 | 视频一区色眯眯视频在线 | 欧美一区二区三区久久综 | 欧美一级在线毛片免费观看 | 91小视频在线观看免费版高清 | 日韩在线视频免费 | 成人午夜兔费观看网站 | 国产成人精品综合 | 97超视频在线观看 | 91香蕉视频成人 | 一区二区不卡在线 | 欧美第一页草草影院浮力 | 高清在线观看自拍视频 | 男女午夜24式免费视频 | 91久久国产露脸精品 | 99久久精品自在自看国产 | 亚洲男人的天堂久久香蕉网 | 特级淫片欧美高清视频蜜桃 | 粉嫩高中生的第一次在线观看 | 九九精品久久久久久噜噜 | 男性吸女下身的视频 | 国产成人ay手机在线观看 | 免费视频成人国产精品网站 | 九色愉拍自拍 | 一级做a爰性色毛片免费 | 91大神大战丝袜美女在线观看 | 亚洲毛片在线播放 | 亚洲精品资源在线 | 欧美与黑人午夜性猛交久久久 | 久草草视频在线观看免费高清 | 国产精品久久久久久久久福利 | 韩国毛片免费 | 久久久小视频 | 美国三级| 国产黄网| 亚洲国产大片 | 日本免费在线一区 | 亚洲精品资源网在线观看 | 国产高清在线精品二区一 |