如何使用分析函数进行行列转换
浏览:65日期:2024-01-17
;经常有朋友问到行列转换的问题,留言板上也有这样的提问。 其实使用分析函数进行处理是很好的方式,翻一下Tom的书,将其中的一个例子收录在这里. 比如查询scott.emp表的用户SAL排序信息,可以使用如下查询: SQL> SELECT deptno, ename, 2 ROW_NUMBER () OVER (PARTITION BY deptno ORDER BY sal DESC) seq 3 FROM emp; DEPTNO ENAME SEQ---------- ---------- ----------10 KING 110 CLARK 210 MILLER 320 SCOTT 120 FORD 220 JONES 320 ADAMS 420 SMITH 530 BLAKE 130 ALLEN 230 TURNER 330 WARD 430 MARTIN 530 JAMES 6 14 rows selected. 再结合其他函数进行一下行列转换: SQL> select deptno, 2; max(decode(seq,1,ename,null)) highest, 3; max(decode(seq,2,ename,null)) second, 4; max(decode(seq,3,ename,null)) third 5; from ( 6; select deptno,ename, 7; row_number() over 8; (partition by deptno order by sal desc) seq 9; from emp) 10; where seq <=3 group by deptno 11; / DEPTNO HIGHEST;SECOND;;THIRD---------- ---------- ---------- ---------- 10 KING;;;;CLARK;;;MILLER 20 SCOTT;;;FORD;;;;JONES 30 BLAKE;;;ALLEN;;;TURNER; 这个结果基本上还是差强人意的。-The End-
相关文章:
热门推荐

- 解决docker容器启动后马上退出的问题
- 1.CSS多浏览器兼容性(IE和Firefox)技巧大全推荐
- 2.如何在.Net 中把图片存入数据库
- 3.用docker运行postgreSQL的方法步骤
- 4.ASP系列讲座(十)ASP 内建对象
- 5.Vue网页html转换PDF(最低兼容ie10)的思路详解
- 6.IE6,IE7,IE8 css bug搜集及浏览器兼容性问题解决方法汇总
- 7.JSP配置 Tomcat 6.0
- 8.ie6,ie7,ie8完美支持position:fixed的终极解决方案
- 9.构建Golang应用最小Docker镜像的实现
- 10.css padding属性兼容ie6,ie8,firefox实例详解
