Oracle9i中使用SYS_CONNECT_BY_PATH进行行列转换-
SQL> SELECT deptno, ename FROM emp ORDER BY deptno, ename;
DEPTNO ENAME
------ ----------
10 CLARK
10 KING
10 MILLER
20 ADAMS
20 FORD
20 JONES
20 SCOTT
20 SMITH
30 ALLEN
30 BLAKE
30 JAMES
30 MARTIN
30 TURNER
30 WARD
14 rows selected.
想输出为:
DEPTNO ENAME
------ ----------
10 CLARK, KING, MILLER
20 ADAMS, FORD, JONES, SCOTT, SMITH
30 ALLEN, BLAKE, JAMES, MARTIN, TURNER, WARD
除了使用聚集函数或者存储过程之外,9i中可以:
SQL> SELECT deptno
2 , LTRIM(MAX(SYS_CONNECT_BY_PATH(ename,','))
3 KEEP (DENSE_RANK LAST ORDER BY curr),',') AS concatenated
4 FROM ( SELECT deptno
5 , ename
6 , ROW_NUMBER() OVER (PARTITION BY deptno ORDER BY ename) AS curr
7 , ROW_NUMBER() OVER (PARTITION BY deptno ORDER BY ename) -1 AS prev
8 FROM emp )
9 GROUP BY deptno
10 CONNECT BY prev = PRIOR curr AND deptno = PRIOR deptno
11 START WITH curr = 1;
DEPTNO
----------
CONCATENATED
----------------------------------------------------------------------------------------------------
10
CLARK,KING,MILLER
20
ADAMS,FORD,JONES,SCOTT,SMITH
30
ALLEN,BLAKE,JAMES,MARTIN,TURNER,WARD
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/87010/viewspace-434740/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/87010/viewspace-434740/
Oracle9i中使用SYS_CONNECT_BY_PATH进行行列转换-相关推荐
- SQL-SERVER 中使用POVIT完成行列转换
假如现在我们有这样一张表,命名为TB_STUDENT_SCORE 表中内容为: 可能会用到pivot的常见情况是:需要生成交叉表格报表以汇总数据.例如,假设需要在 TB_STUDENT_SCORE表中 ...
- 在SQL Server 2005中实现表的行列转换()
PIVOT和UNPIVOT关系运算符是SQL Server 2005提供的新增功能,因此,对升级到SQL Server 2005的数据库使用PIVOT和UNPIVOT时,数据库的兼容级别必须设置为90 ...
- SQL Server 2005之PIVOT/UNPIVOT行列转换
SQL Server 2005之PIVOT/UNPIVOT行列转换 作者: NinGoo(http://ningoo.itpub.net) 发表于: 2007.04.18 11:49 分类: SQL ...
- SQL Server 2005之PIVOT/UNPIVOT行列转换(转)
SQL Server2005引入了很多迎合开发者口味的新特性,虽然改动不大,却大大了减少了开发者的工作量,这种替用户考虑的开发思路,值得称赞. 在SQL Server2000中,要实现行列转换,需要综 ...
- SQL中PIVOT 行列转换
来源:http://www.studyofnet.com/news/295.html PIVOT通过将表达式某一列中的唯一值转换为输出中的多个列来旋转表值表达式,并在必要时对最终输出中所需的任何其余列 ...
- SQL Server中行列转换 Pivot UnPivot (转载)
SQL Server中行列转换 Pivot UnPivot PIVOT用于将列值旋转为列名(即行转列),在SQL Server 2000可以用聚合函数配合CASE语句实现PIVOT的一般语法是:PIV ...
- oracle中行列转换总结
oracle中行列转换 1.行列转换包括以下六种情况: 2. 列转行 2.1 UNION ALL 2.2 MODEL 2.3 COLLECTION 2.4 UNPIVOT 3. 行转列 3.1 AGG ...
- mysql中的行列转换
mysql中的行列转换 案例:1 两张表合成一张表统计各个分类的总数. 建表语句 # doc表建表语句 SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; - ...
- oracle行列转换总结
最近论坛很多人提的问题都与行列转换有关系,所以我对行列转换的相关知识做了一个总结, 希望对大家有所帮助,同时有何错疏,恳请大家指出, 我也是在写作过程中学习,算是一起和大家学习吧. 行列转换包括以下六 ...
最新文章
- TTCN手动测试总结
- 一文详尽支付宝系统架构(附内部架构图)
- c语言直接插入排序步骤,经典排序之直接插入排序(C语言)
- 专注、突围、转型—2015协同OA市场盘点
- 记一次与为知笔记的客服沟通
- ML之FE:数据处理—特征工程之高维组合特征的处理案例(矩阵分解)——基于LoR算法的广告点击预估问题
- MyBatisPlus3.x代码生成器自定义模板配置
- 外部引用CSS中 link与@import的区别
- torchvision中Transform的normalize
- raise event when save - COM_PR_CHBADI_RAISE_WF_EVENT
- iOS 内存管理arc
- php cannot bind port to socket,PHP基于socket实现客户端和服务端通讯功能
- mysql的基本语句
- 目录2. 计算机 13. 计算机智能 24. 软件 25. 操作系统 36. 互联网 37. 软件产业 38. 软件演示 49. 软件专利 410. 复杂性 411. 易用性
- 用代码实现自反闭包,对称闭包,传递闭包
- 利用计算机来对指纹,指纹自动识别系统.doc
- 织梦dedecms会员设置、互动设置教程
- u盘chk文件恢复图文教程
- 2D 动画调整 position 产生的位移问题
- 反向代理和正向代理的区别