色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

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

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

瀏覽:4日期:2023-09-15 20:49:58
目錄一、使用Case when 實(shí)現(xiàn)列轉(zhuǎn)為行(多行一列-->一行多列)1.1、實(shí)現(xiàn)效果1.2、列轉(zhuǎn)行(多行一列-->一行多列)二、使用 Case When 實(shí)現(xiàn)行轉(zhuǎn)列(一行多列-->多行一列)2.1、實(shí)現(xiàn)效果2.2、行轉(zhuǎn)列(一行多列-->多行一列)三、將結(jié)果集轉(zhuǎn)為一行四、將結(jié)果集轉(zhuǎn)為多行一、使用Case when 實(shí)現(xiàn)列轉(zhuǎn)為行(多行一列-->一行多列)1.1、實(shí)現(xiàn)效果

①原表效果

②實(shí)現(xiàn)將Course課程列內(nèi)容轉(zhuǎn)為行效果【實(shí)現(xiàn)將每個(gè)人員的課程信息合成一行,且獲取到課程總分】

1.2、列轉(zhuǎn)行(多行一列-->一行多列)

sql語句

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) '英語',MAX(CASE WHEN COURSE='物理' THEN SCORE END) '物理',SUM(SCORE) '總分' FROM stu GROUP BY NAME;二、使用 Case When 實(shí)現(xiàn)行轉(zhuǎn)列(一行多列-->多行一列)2.1、實(shí)現(xiàn)效果

①原表效果

②實(shí)現(xiàn)將多個(gè)數(shù)字列轉(zhuǎn)為一列效果

2.2、行轉(zhuǎn)列(一行多列-->多行一列)

sql語句

SELECT NAME, CASE WHEN LV = 1 THEN '語文' --常量 WHEN LV = 2 THEN '數(shù)學(xué)' --常量 WHEN LV = 3 THEN '英語' --常量 WHEN LV = 4 THEN '物理' --常量 END 科目, CASE WHEN LV = 1 THEN langu --列名 WHEN LV = 2 THEN math--列名 WHEN LV = 3 THEN english--列名 WHEN LV = 4 THEN pycial--列名 END 成績 FROM ( SELECT * FROM course, (SELECT LEVEL LV FROM DUAL CONNECT BY LEVEL <= 4) ) --成績對應(yīng)的列數(shù)ORDER BY 1, 2;三、將結(jié)果集轉(zhuǎn)為一行

①查詢到每個(gè)部門的人數(shù)

--查詢每個(gè)部門的人數(shù) SELECT DEPTNO, COUNT(1) CN FROM EMP GROUP BY DEPTNO ORDER BY 1;

②將查詢到的每個(gè)部門人數(shù)的結(jié)果集【轉(zhuǎn)為一行】

--將上面的結(jié)果轉(zhuǎn)為一行,可以使用 SUM 或者 COUNT 來求出。 SELECT SUM(CASE WHEN DEPTNO = 10 THEN 1 END) D_10,SUM(CASE WHEN DEPTNO = 20 THEN 1 END) D_20,SUM(CASE WHEN DEPTNO = 30 THEN 1 END) D_30 FROM EMP; --也可以使用下面的方法。 SELECT CASE WHEN DEPTNO = 10 THEN CN END D_10,CASE WHEN DEPTNO = 20 THEN CN END D_20,CASE WHEN DEPTNO = 30 THEN CN END D_30 FROM (SELECT DEPTNO, COUNT(1) CN FROM EMP GROUP BY DEPTNO); --和剛講的一樣,生成了三行三列數(shù)據(jù),使用 MAX 來獲取。 SELECT MAX(CASE WHEN DEPTNO = 10 THEN CN END) D_10,MAX(CASE WHEN DEPTNO = 20 THEN CN END) D_20,MAX(CASE WHEN DEPTNO = 30 THEN CN END) D_30 FROM (SELECT DEPTNO, COUNT(1) CN FROM EMP GROUP BY DEPTNO);四、將結(jié)果集轉(zhuǎn)為多行

SELECT MAX(CASE JOB WHEN 'CLERK' THEN ENAME END) CLERK,MAX(CASE JOB WHEN 'ANALYST' THEN ENAME END) ANALYST, MAX(CASE JOB WHEN 'MANAGER' THEN ENAME END) MANAGER,MAX(CASE JOB WHEN 'PRESIDENT' THEN ENAME END) PRESIDENT,MAX(CASE JOB WHEN 'SALESMAN' THEN ENAME END) SALESMAN FROM (SELECT ENAME,JOB,--每組都是從 1 開始排序,而每列里面只有一組有數(shù)據(jù)。也就是 RN 相同的在每列里面只有一條數(shù)據(jù) ROW_NUMBER() OVER(PARTITION BY JOB ORDER BY ENAME) RN FROM EMP) GROUP BY RN ORDER BY RN;

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

標(biāo)簽: Oracle 數(shù)據(jù)庫
相關(guān)文章:
主站蜘蛛池模板: 免费高清毛片在线播放视频 | 狠狠色丁香久久综合网 | 国产午夜免费不卡精品理论片 | 一区自拍| 久久日本精品一区二区免费 | 欧美一级片a | 一级成人黄色片 | 久久久国产亚洲精品 | 久久精品精品 | 日本成本人视频 | a毛片免费全部播放完整成 a毛片免费全部在线播放毛 | 国产五区| 在线综合+亚洲+欧美中文字幕 | 日韩精品在线免费观看 | 国产精品伦理久久久久 | 506rr亚洲欧美 | 久久久久久久久久毛片精品美女 | 日韩a毛片免费全部播放完整 | 国产真真人女人特级毛片 | 精品一区二区三区视频在线观看免 | 国产福利不卡一区二区三区 | 国产成人免费福利网站 | 五月激激激综合网色播免费 | 99视频在线精品自拍 | 久久99精品久久久久久h | 亚洲欧美日本国产 | 日韩精品视频免费在线观看 | 杨幂国产精品福利在线观看 | 美女又黄又免费视频 | 国产素人在线观看 | 亚洲视频在线看 | 国产精品秦先生手机在线 | 99久久这里只精品国产免费 | 免费观看女人一摸全是水 | 污全彩肉肉无遮挡彩色 | 亚洲综合日本 | 国产成人a大片大片在线播放 | 扒开两腿猛进入爽爽视频 | 怡红院日本一道日本久久 | www.av在线视频 | 视频在线色 |