oracle字段合并方法


  table1

  NO SNAME

  1 张三

  2 李四

  table2

  NO YEAR

  1 2006年

  1 2007年

  2 2005年

  2 2006年

  结果用sql 语言 :

  SNAME YEAR

  张三 2006 年,2007年

  李四 2005 年,2006年

  SELECT SNAME,LTRIM(MAX(SYS_CONNECT_BY_PATH(YEAR,',')),',') AS YEAR

  FROM (

  SELECT NO,SNAME, YEAR,

  ROW_NUMBER() OVER(PARTITION BY NO ORDER BY YEAR) as CURR,

  ROW_NUMBER() OVER(PARTITION BY NO ORDER BY YEAR) - 1 as PREV

  FROM (

  SELECT A.NO, A.SNAME, B.YEAR

  FROM table1 A INNER JOIN table2 B ON A.NO = B.NO

  )

  )

  START WITH CURR = 1

  CONNECT BY PREV = PRIOR CURR and NO = PRIOR NO

  GROUP BY SNAME



相关阅读:
ORACLE中的各种数据类型详细的介绍
jsp web.xml文件的作用及基本配置
利用Windows注册表来清理系统垃圾文件
java 中文字符串数组按照音序排列
jQuery EasyUI 中文API Layout(Tabs)
javascript中的作用域scope介绍
回收临时表空间ORA-03297解决-入门基础
在Linux上搭建一个简单的vsftpd服务器
PHP5.0对象模型探索之抽象方法和抽象类
JavaScript进阶教程(第三课第二部分)
PHP与ASP.NET的比较
css中用javascript判断浏览器版本
菜鸟乐园:Linux系统Shell命令介绍
用CSS改变鼠标箭头
快速导航

Copyright © 2016 phpStudy |