日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

oracle行轉列與列轉行的幾種方式匯總

瀏覽:295日期:2023-09-22 20:54:42
目錄1、準備數據:REST表2、查詢數據3、行轉列方式1:使用 case when then方式方式2: 使用 decode函數方式3:使用pivot函數4、列轉行5、直接使用unpivot函數 --列轉行總結 1、準備數據:REST表-- 創建表RESTCREATE TABLE REST ( 'ID' NUMBER, 'AMOUNT' NUMBER(19,0), 'MONTH' VARCHAR2(255 BYTE));--執行添加數據語句INSERT INTO 'CERPAWCSADM'.'REST' VALUES ('1', '100', 'Jan');INSERT INTO 'CERPAWCSADM'.'REST' VALUES ('1', '100', 'Feb');INSERT INTO 'CERPAWCSADM'.'REST' VALUES ('1', '66', 'Mar');INSERT INTO 'CERPAWCSADM'.'REST' VALUES ('1', '77', 'Jun');INSERT INTO 'CERPAWCSADM'.'REST' VALUES ('1', '88', 'Dec');INSERT INTO 'CERPAWCSADM'.'REST' VALUES ('1', '12', 'Aug');INSERT INTO 'CERPAWCSADM'.'REST' VALUES ('2', '22', 'Feb');INSERT INTO 'CERPAWCSADM'.'REST' VALUES ('2', '33', 'Apr');INSERT INTO 'CERPAWCSADM'.'REST' VALUES ('2', '232', 'Jul');INSERT INTO 'CERPAWCSADM'.'REST' VALUES ('2', '43', 'Sep');INSERT INTO 'CERPAWCSADM'.'REST' VALUES ('2', '544', 'Oct');INSERT INTO 'CERPAWCSADM'.'REST' VALUES ('2', '65', 'Nov');2、查詢數據

3、行轉列方式1:使用 case when then方式

case 條件

when 值1 then 返回值1

when 值2 then 返回值2

..........

else 默認值

end

-- 使用case when 方式SELECTid,sum( CASE month WHEN 'Jan' THEN amount ELSE 0 END ) AS Jan_amount,sum( CASE month WHEN 'Feb' THEN amount ELSE 0 END ) AS Feb_amount,sum( CASE month WHEN 'Mar' THEN amount ELSE 0 END ) AS Mar_amount,sum( CASE month WHEN 'Apr' THEN amount ELSE 0 END ) AS Apr_amount,sum( CASE month WHEN 'May' THEN amount ELSE 0 END ) AS May_amount,sum( CASE month WHEN 'Jun' THEN amount ELSE 0 END ) AS Jun_amount,sum( CASE month WHEN 'Jul' THEN amount ELSE 0 END ) AS Jul_amount,sum( CASE month WHEN 'Aug' THEN amount ELSE 0 END ) AS Aug_amount,sum( CASE month WHEN 'Sep' THEN amount ELSE 0 END ) AS Sep_amount,sum( CASE month WHEN 'Oct' THEN amount ELSE 0 END ) AS Oct_amount,sum( CASE month WHEN 'Nov' THEN amount ELSE 0 END ) AS Nov_amount,sum( CASE month WHEN 'Dec' THEN amount ELSE 0 END ) AS Dec_amount FROMREST GROUP BYid

case when 另一種方式:

case when 條件 = 值1 then 返回值1

case when 條件 = 值1 then 返回值1

else 默認值

end

SELECTid,sum( CASE WHEN month ='Jan' THEN amount ELSE 0 END ) AS Jan_amount,sum( CASE WHEN month = 'Feb' THEN amount ELSE 0 END ) AS Feb_amount,sum( CASE WHEN month = 'Mar' THEN amount ELSE 0 END ) AS Mar_amount,sum( CASE WHEN month = 'Apr' THEN amount ELSE 0 END ) AS Apr_amount,sum( CASE WHEN month = 'May' THEN amount ELSE 0 END ) AS May_amount,sum( CASE WHEN month = 'Jun' THEN amount ELSE 0 END ) AS Jun_amount,sum( CASE WHEN month = 'Jul' THEN amount ELSE 0 END ) AS Jul_amount,sum( CASE WHEN month = 'Aug' THEN amount ELSE 0 END ) AS Aug_amount,sum( CASE WHEN month = 'Sep' THEN amount ELSE 0 END ) AS Sep_amount,sum( CASE WHEN month = 'Oct' THEN amount ELSE 0 END ) AS Oct_amount,sum( CASE WHEN month = 'Nov' THEN amount ELSE 0 END ) AS Nov_amount,sum( CASE WHEN month = 'Dec' THEN amount ELSE 0 END ) AS Dec_amount FROMREST GROUP BYid

結果為:

方式2: 使用 decode函數

decode函數: DECODE(條件, 值1, 返回值1, 值2,返回值2, 值3,返回值3, . . . else 缺省值)

含義:if 條件 = 值1 then 返回值1 elsif 條件 = 值2 then 返回值2 else (缺省值) endif

--使用decode函數SELECTid,sum( decode( month, 'Jan', amount, 0 ) ) Jan_amount,sum( decode( month, 'Feb', amount, 0 ) ) Feb_amount,sum( decode( month, 'Mar', amount, 0 ) ) Mar_amount,sum( decode( month, 'Apr', amount, 0 ) ) Apr_amount,sum( decode( month, 'May', amount, 0 ) ) May_amount,sum( decode( month, 'Jun', amount, 0 ) ) Jun_amount,sum( decode( month, 'Jul', amount, 0 ) ) Jul_amount,sum( decode( month, 'Aug', amount, 0 ) ) Aug_amount,sum( decode( month, 'Sep', amount, 0 ) ) Sep_amount,sum( decode( month, 'Oct', amount, 0 ) ) Oct_amount,sum( decode( month, 'Nov', amount, 0 ) ) Nov_amount,sum( decode( month, 'Dec', amount, 0 ) ) Dec_amount FROMREST GROUP BYid

結果和方式1一樣

方式3:使用pivot函數

pivot(<聚合函數>(要聚合的列)for <要轉換的列> in (要轉換的列值 as 要轉換成的列名))

SELECT* FROM REST pivot (SUM(amount) FOR month IN ('Jan' AS Jan_amount,'Feb' AS Feb_amount,'Mar' AS Mar_amount,'Apr' AS Apr_amount,'May' AS May_amount,'Jun' AS Jun_amount,'Jul' AS Jul_amount,'Aug' AS Aug_amount,'Sep' AS Sep_amount,'Oct' AS Oct_amount,'Nov' AS Nov_amount,'Dec' AS Dec_amount ) );

結果為:這個結果會發現,如果數據為空沒有賦值為0

下面這個方法解決null 轉為0 問題

SELECTNVl(Jan_amount,0) Jan_amount,NVl(Feb_amount,0) Feb_amount,NVl(Mar_amount,0) Mar_amount,NVl(Apr_amount,0) Apr_amount,NVl(May_amount,0) May_amount,NVl(Jun_amount,0) Jun_amount,NVl(Jul_amount,0) Jul_amount,NVl(Aug_amount,0) Aug_amount,NVl(Sep_amount,0) Sep_amount,NVl(Oct_amount,0) Oct_amount,NVl(Nov_amount,0) Nov_amount,NVl(Dec_amount,0) Dec_amountFROM REST pivot (SUM(amount) FOR month IN ('Jan' AS Jan_amount,'Feb' AS Feb_amount,'Mar' AS Mar_amount,'Apr' AS Apr_amount,'May' AS May_amount,'Jun' AS Jun_amount,'Jul' AS Jul_amount,'Aug' AS Aug_amount,'Sep' AS Sep_amount,'Oct' AS Oct_amount,'Nov' AS Nov_amount,'Dec' AS Dec_amount ) );

結果和方式1一樣:

4、列轉行

在上述pivot 方法的原sql語句上再加上unpivot函數,將列再轉為行,在unpivot函數中,amount:表示由列轉換為行后的數據

month:表示由列轉換為行后的列名

select * from RESTpivot (sum(amount) for month in ('Jan' AS Jan_amount,'Feb' AS Feb_amount,'Mar' AS Mar_amount,'Apr' AS Apr_amount,'May' AS May_amount,'Jun' AS Jun_amount,'Jul' AS Jul_amount,'Aug' AS Aug_amount,'Sep' AS Sep_amount,'Oct' AS Oct_amount,'Nov' AS Nov_amount,'Dec' AS Dec_amount ))unpivot ( amount for month in(Jan_amount,Feb_amount,Mar_amount,Apr_amount,May_amount,Jun_amount,Jul_amount,Aug_amount,Sep_amount,Oct_amount,Nov_amount,Dec_amount));

結果為:

5、直接使用unpivot函數 --列轉行

準備數據:TEST表

CREATE TABLE TEST ( 'ID' NUMBER(12,0) NOT NULL, 'JAN' VARCHAR2(255 BYTE), 'FEB' VARCHAR2(255 BYTE), 'MAR' VARCHAR2(255 BYTE), 'APR' VARCHAR2(255 BYTE), 'MAY' VARCHAR2(255 BYTE), 'JUN' VARCHAR2(255 BYTE), 'JUL' VARCHAR2(255 BYTE), 'AUG' VARCHAR2(255 BYTE), 'SEP' VARCHAR2(255 BYTE), 'OCT' VARCHAR2(255 BYTE), 'NOV' VARCHAR2(255 BYTE), 'DEC' VARCHAR2(255 BYTE));-- 插入數據INSERT INTO 'CERPAWCSADM'.'TEST' VALUES ('1', '33', '2', '3', '4', '5', '6', '7', '8', '9', '99', '8', '6');INSERT INTO 'CERPAWCSADM'.'TEST' VALUES ('2', '22', '3', '4', '6', '5', '7', '0', '7', '22', '21', '343', '76');INSERT INTO 'CERPAWCSADM'.'TEST' VALUES ('3', '88', '3', '4', '5', '7', '9', '7', '2', '2', '231', '56', '78');

查詢出的數據

列轉行sql

SELECT* FROM TESTunpivot ( amount for month in(JAN,FEB,MAR,APR,MAY,JUN,JUL,AUG,SEP,OCT,NOV,DEC));

結果為:

總結

到此這篇關于oracle行轉列與列轉行的幾種方式匯總的文章就介紹到這了,更多相關oracle行轉列與列轉行內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Oracle 數據庫
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国精品一区二区| 久久97视频| 亚洲+小说+欧美+激情+另类| 欧美sss在线视频| 精品一区二区三区在线观看视频| 中文字幕成人| 视频精品一区二区| 蜜臀久久久久久久| 在线亚洲精品| 蜜臀91精品国产高清在线观看| 日本一区二区免费高清| 日韩精品视频中文字幕| 亚洲97av| 欧美成人一二区| 丰满少妇一区| 91精品一区二区三区综合在线爱 | 激情欧美一区二区三区| 亚洲性色视频| 亚洲欧美日韩在线观看a三区| 亚洲经典在线| 日韩综合小视频| 国产欧美一区二区色老头| 中文字幕一区二区三区四区久久| 欧美一区成人| 麻豆mv在线观看| 99在线|亚洲一区二区| 久久国产精品成人免费观看的软件| 国产在线成人| 另类av一区二区| 国产欧美视频在线| 亚洲午夜一级| 国产黄色精品| 欧美91视频| 亚洲一区二区网站| 精品国产精品久久一区免费式| 国产在线看片免费视频在线观看| 亚洲夜间福利| 国产精品一国产精品k频道56| 欧美羞羞视频| 亚洲va久久久噜噜噜久久| 国产精品一区二区三区www| 久久人人99| 久久国产精品99国产| 日本不卡一区二区| 91看片一区| 国产精品亚洲一区二区在线观看| 136国产福利精品导航网址| 久久精品99国产精品| 91精品综合| 久久精品三级| 在线天堂中文资源最新版| 久久99伊人| 欧美日韩国产一区精品一区| 麻豆一区在线| 国产高清一区| 国产激情欧美| 1000部精品久久久久久久久| 久久不卡日韩美女| 国产美女一区| 欧美日韩精品一本二本三本| 久草免费在线视频| 美女视频网站久久| 日韩精品久久理论片| 日韩欧美中文字幕电影 | 999精品色在线播放| 精品一区二区三区亚洲| 日韩一区二区三区四区五区| 亚洲欧美视频一区二区三区| 成人午夜精品| 青青久久av| 91一区二区三区四区| 欧美久久香蕉| 欧美日本三区| 欧美在线看片| 欧美日韩一区二区三区在线电影| 美女网站一区| 欧美日中文字幕| 国产999精品在线观看| 精品国内亚洲2022精品成人| 久久影院一区二区三区| 丰满少妇一区| 国产精品伦一区二区| 国产探花一区在线观看| 国产精品久久| 精品一区二区三区中文字幕在线| 久久精品国产一区二区| 波多视频一区| 亚洲精品小说| 日本伊人午夜精品| 欧美日韩一区二区三区在线电影| 狠狠久久伊人| 夜夜嗨av一区二区三区网站四季av| 美女精品网站| 日韩激情中文字幕| 在线看片国产福利你懂的| 欧美中文日韩| 日本一二区不卡| 亚洲激情av| 日韩视频一二区| 久久精品理论片| 视频在线在亚洲| 国产高清日韩| 香蕉久久精品| 日韩一区二区三免费高清在线观看 | 91一区二区三区四区| 中文字幕在线看片| 亚洲专区视频| 亚洲三级网址| 日韩专区精品| 亚洲另类av| 国产精品久久久久久久久久久久久久久 | 欧美日本三区| 99久久婷婷这里只有精品| 国产欧美日韩在线观看视频| 婷婷成人综合| 精品亚洲精品| 日韩国产精品久久久| 欧美日韩一二三四| 国产日韩在线观看视频| 欧美激情网址| 男女性色大片免费观看一区二区 | 精品国产一区二区三区2021| 欧洲亚洲一区二区三区| 欧美中文一区| 人人精品人人爱| 午夜欧美在线| 神马午夜久久| www.51av欧美视频| 国产精品久久久久久久久久久久久久久| 午夜在线一区| 日韩视频久久| 久久av在线| 国产亚洲一级| 欧美日韩国产一区二区三区不卡| 免费在线成人| 亚洲精品护士| 日本一区二区三区视频在线看| 亚洲三级国产| 欧美偷窥清纯综合图区| 国产精品xxx在线观看| 91精品一区| 国产精品夜夜夜| 国产精品一区免费在线| 麻豆久久久久久| 国产精品一区二区精品视频观看| 国产伦理久久久久久妇女| 麻豆中文一区二区| 韩国精品主播一区二区在线观看 | 亚洲欧美视频| 亚洲精品麻豆| 国产精品sm| 欧洲av一区二区| 国产亚洲福利| 日韩av网站在线免费观看| 国产精品一国产精品k频道56| 你懂的国产精品永久在线| 久久精品国产精品亚洲毛片| 久久九九电影| 蜜臀久久99精品久久久画质超高清| 天堂精品久久久久| 免费在线观看一区| 精品视频免费| 亚洲播播91| 中文字幕一区二区三区在线视频| 日本强好片久久久久久aaa| 水蜜桃久久夜色精品一区| 亚洲福利国产| 日韩欧美2区| 精品欠久久久中文字幕加勒比| 日韩精品专区| 中文字幕日韩高清在线| 欧洲av不卡| 欧美日韩亚洲一区三区| 婷婷亚洲五月色综合| 麻豆久久一区| 日韩精品视频网站| 国产精品日本一区二区不卡视频| 亚洲福利免费| 久久久久伊人| 日本免费新一区视频| 91精品啪在线观看国产18| 免费一区二区三区在线视频| 美女久久网站| 亚洲天堂一区二区| 国产乱人伦精品一区| 日韩中文字幕一区二区三区| 日本高清不卡一区二区三区视频| 国产丝袜一区| 日韩在线电影| 水蜜桃久久夜色精品一区的特点| 婷婷综合六月| 国产日韩电影| 欧美成人一二区| 青青国产精品| 亚洲日韩中文字幕一区| 99久久夜色精品国产亚洲1000部 | 麻豆高清免费国产一区| 日本不卡的三区四区五区| 免费观看在线综合| 视频一区视频二区中文|