有表:

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进行行列转换-相关推荐

  1. SQL-SERVER 中使用POVIT完成行列转换

    假如现在我们有这样一张表,命名为TB_STUDENT_SCORE 表中内容为: 可能会用到pivot的常见情况是:需要生成交叉表格报表以汇总数据.例如,假设需要在 TB_STUDENT_SCORE表中 ...

  2. 在SQL Server 2005中实现表的行列转换()

    PIVOT和UNPIVOT关系运算符是SQL Server 2005提供的新增功能,因此,对升级到SQL Server 2005的数据库使用PIVOT和UNPIVOT时,数据库的兼容级别必须设置为90 ...

  3. SQL Server 2005之PIVOT/UNPIVOT行列转换

    SQL Server 2005之PIVOT/UNPIVOT行列转换 作者: NinGoo(http://ningoo.itpub.net) 发表于: 2007.04.18 11:49 分类: SQL ...

  4. SQL Server 2005之PIVOT/UNPIVOT行列转换(转)

    SQL Server2005引入了很多迎合开发者口味的新特性,虽然改动不大,却大大了减少了开发者的工作量,这种替用户考虑的开发思路,值得称赞. 在SQL Server2000中,要实现行列转换,需要综 ...

  5. SQL中PIVOT 行列转换

    来源:http://www.studyofnet.com/news/295.html PIVOT通过将表达式某一列中的唯一值转换为输出中的多个列来旋转表值表达式,并在必要时对最终输出中所需的任何其余列 ...

  6. SQL Server中行列转换 Pivot UnPivot (转载)

    SQL Server中行列转换 Pivot UnPivot PIVOT用于将列值旋转为列名(即行转列),在SQL Server 2000可以用聚合函数配合CASE语句实现PIVOT的一般语法是:PIV ...

  7. oracle中行列转换总结

    oracle中行列转换 1.行列转换包括以下六种情况: 2. 列转行 2.1 UNION ALL 2.2 MODEL 2.3 COLLECTION 2.4 UNPIVOT 3. 行转列 3.1 AGG ...

  8. mysql中的行列转换

    mysql中的行列转换 案例:1 两张表合成一张表统计各个分类的总数. 建表语句 # doc表建表语句 SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; - ...

  9. oracle行列转换总结

    最近论坛很多人提的问题都与行列转换有关系,所以我对行列转换的相关知识做了一个总结, 希望对大家有所帮助,同时有何错疏,恳请大家指出, 我也是在写作过程中学习,算是一起和大家学习吧. 行列转换包括以下六 ...

最新文章

  1. TTCN手动测试总结
  2. 一文详尽支付宝系统架构(附内部架构图)
  3. c语言直接插入排序步骤,经典排序之直接插入排序(C语言)
  4. 专注、突围、转型—2015协同OA市场盘点
  5. 记一次与为知笔记的客服沟通
  6. ML之FE:数据处理—特征工程之高维组合特征的处理案例(矩阵分解)——基于LoR算法的广告点击预估问题
  7. MyBatisPlus3.x代码生成器自定义模板配置
  8. 外部引用CSS中 link与@import的区别
  9. torchvision中Transform的normalize
  10. raise event when save - COM_PR_CHBADI_RAISE_WF_EVENT
  11. iOS 内存管理arc
  12. php cannot bind port to socket,PHP基于socket实现客户端和服务端通讯功能
  13. mysql的基本语句
  14. 目录2. 计算机 13. 计算机智能 24. 软件 25. 操作系统 36. 互联网 37. 软件产业 38. 软件演示 49. 软件专利 410. 复杂性 411. 易用性
  15. 用代码实现自反闭包,对称闭包,传递闭包
  16. 利用计算机来对指纹,指纹自动识别系统.doc
  17. 织梦dedecms会员设置、互动设置教程
  18. u盘chk文件恢复图文教程
  19. 2D 动画调整 position 产生的位移问题
  20. 反向代理和正向代理的区别

热门文章

  1. 神奇的月食画面 超级血月出现天文迷大兴奋
  2. 【直观详解】线性代数的本质
  3. 计算机摄影测量学 教材,摄影测量学-十一五规划教材.pdf
  4. 把 14 亿人都拉到一个微信群,在技术上能实现吗?
  5. 聊下Android的专利许可和商标
  6. Error mounting /dev/sda8 at /media/wxp/
  7. word制作试卷方法
  8. Android开发工程师常见面试题整理
  9. 智力过河游戏c语言,Flash AS代码实现智力过河小游戏
  10. 堆栈与动态分配内存空间